了解Apple开发人员参考文档

时间:2016-04-19 15:47:52

标签: ios objective-c cocoa

我已经看到了另一个关于此问题的问题(Understanding how to use methods found in Apple Developer Reference documentation),看起来因为不够具体而被关闭,所以我想问一个具体的问题,看看我是否可以得到相同的答案他们试图进入。

我对此更新,并希望能够更好地阅读Apple文档,但我无法立即看到我将如何知道这一点(https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSArray_Class/#//apple_ref/occ/instm/NSArray/initWithObjects:count :):

- (instancetype)initWithObjects:(ObjectType)firstObj

变成(类似)这个(作为一个例子):

rssFeedURLs = [[NSMutableArray alloc] initWithObjects: url1, url2, nil];  

一旦它“点击”,我确信它很容易,所以我想知道你是否可以给我任何帮助,这样我才能在基本层面上更容易理解这一点。

我正在通过编程书籍,教程,视频等方式努力工作,以便更深入地了解基础和基础知识。无论出于何种原因,我都会在理解Apple Docs方法时将其翻译成实际代码。

感谢您的耐心和时间!

2 个答案:

答案 0 :(得分:1)

你还没有仔细阅读过。实际上有

- (instancetype)initWithObjects:(ObjectType)firstObj, ...;

在文档中。 ...变量参数。要理解这样的事情,你应该知道究竟是什么。因此,在这种情况下,它涉及理解语言功能。谈论ObjectType,它是轻量级泛型,这也是语言功能。

如果你想知道,为什么在url1, url2, nil最后有nil,你应该仔细阅读文档。来自你引用

  

以逗号分隔的以nil结尾的对象列表。

所以,这里没有任何魔力。 总之,您需要两件事来更好地理解Apple参考

  1. 了解您正在使用的语言
  2. 仔细阅读,不要错过任何一个字

答案 1 :(得分:0)

在您使用示例的问题中:

- (instancetype)initWithObjects:(ObjectType)firstObj

(这应该是

- (instancetype)initWithObjects:(ObjectType)firstObj, ...

- 其余部分在文档中,但由于布局不佳,在下一行)

并在随后的评论中写道:

  

所以NSArrayinstancetype,但他们为什么要把它放在()中呢? initWithObjects是方法。您将ObjectType传递给它。这就是我试图完全理解的事情,以及如何随着我自己解释它

您似乎还不熟悉Objective-C中方法声明的内容,您应该阅读Apple的Method Declarations Indicate the Messages an Object Can Receive来解释语法。

一旦您了解了如何声明自己的方法,那么阅读文档中的方法应该很容易。

但是,您选择了一些具有更多高级功能的示例:

  • instancetype - 没有真正进步,但这是一种相对较新的方式来声明初始化或工厂方法的返回类型。请参阅Apple的Adopting Modern Objective-C获取解释,或者只是将其用于所有初始化或工厂方法,并了解后者的原因。

  • ObjectType - 这与Apple的新 Lightweight Generics 有关。这是一个轻松指定的功能,旨在与Swift交互(请参阅Interacting with Objective-C APIs)。通常在阅读文档时,如果您看到ObjectType,则可以将其替换为id - 意思是"任何对象类型" - 了解方法。

  • firstObj, ... - 这是Objective-C可变参数语法 - 其中方法采用可变数量的参数。文档中的参数描述将提供更多详细信息,在本例中为"以逗号分隔的对象列表,以nil"结尾。有关变量参数的更多详细信息,请参阅Apple的Variable arguments in Objective-C methods

在某个例子中,您可能会遇到您可能会看到的大部分高级功能。

HTH