了解如何阅读iOS文档和API参考

时间:2014-12-18 07:44:59

标签: ios objective-c documentation

NSArray 为例。如果我们查看类引用并查看初始化数组子部分,我们会看到这种方法:

-(instancetype)initWithObjects:(id)firstObj

因为我们正在创建NSArrays,所以我想创建一个NSArray类的对象并且有一个数组指针。

NSArray *array = [NSArray new];

我们打算调用initWithObjects:(id)firstObj

的方法
NSArray *array = [[NSArray alloc] initWithObjects:@[@"hello", @"world"]];

我对我可以传递的内容感到有点困惑。以下面的方法为例:

-(void)commentOnMediaItem:(Media *)mediaItem withCommentText:(NSString *)commentText;

我看到我需要传入一个mediaItem和一个NSString,但什么时候适合子类并创建自己的?

我想我的困惑在于,我只能访问头文件和面向公众的方法,而无需真正理解某些方法的实现。

最终,任何有关如何细分参考指南/文档以及提供技巧的顿悟的提示都将受到慷慨的赞赏。

1 个答案:

答案 0 :(得分:1)

让我们从您所写的错误概念开始,作为您的理解。

  

这意味着实例类型已被[NSArray alloc]

替换

不,绝对没有。为了解释这一点,我们将介绍Objective-C的方法/消息语法。如果掌握方法语法,则可以轻松阅读文档。现在不要为我为什么用方法写 message 而烦恼。在帖子结束时会很清楚。

-(instancetype)initWithObjects:(id)firstObj

instancetype - 返回方法的数据类型。这意味着返回类型与接收方的类型相同 initWithObjects: - 方法签名。
id - 方法参数的数据类型。 id表示它可以是任何数据类型,它是一个对象
firstObj - 方法参数

现在让我们看看[NSArray alloc]做了什么。这意味着已创建NSArray的对象并为其分配内存,但尚未初始化。

消息 - Objective-C使用消息传递作为调用方法的方法。消息被发送到接收器,接收器基本上是将具有相关方法实现的对象。 因此,当initWithObjects:的消息发送到NSArray的原始对象时,这意味着NSArray类将实现此方法,一旦完成它将返回{{1}的对象1}}

对于初学者来说,消息传递有点难以理解,如果现在还不清楚,那么我建议您掌握好语言,然后尝试理解它。但请阅读Working with Objects的完整部分以获得清晰的图片。

  

学习Swift是否会同时提供帮助?

完全基于@Amadan的观点已经提到过。我个人觉得它会弄乱你的想法。先学习一种语言,然后了解其中的差异。