ARC 文档在 LLVM 站点上是公开的,因此 NDA 在这里不是问题。
我发现在为 ARC 准备代码时,我在很多以前会使用 (id) 的情况下使用 (NSObject*)。
例如,如果我正在编写一个 initWithParent: 方法,它可能是
-(id) initWithParent: (NSObject*) parent;
我以前会写的地方
-(id) initWithParent: (id) parent;
我的问题是——这种做法有意义吗?
ARC 文档在 LLVM 站点上是公开的,因此 NDA 在这里不是问题。
我发现在为 ARC 准备代码时,我在很多以前会使用 (id) 的情况下使用 (NSObject*)。
例如,如果我正在编写一个 initWithParent: 方法,它可能是
-(id) initWithParent: (NSObject*) parent;
我以前会写的地方
-(id) initWithParent: (id) parent;
我的问题是——这种做法有意义吗?
我相信这适用于大多数情况,至少如果您的对象派生自 NSObject (并非所有事情都如此)。这是一篇关于该主题的有趣博客文章(独立于 ARC)。
我绝不是任何专家,但如果消息传递的不是对象(int、struct 等),它似乎可能会遇到麻烦。
除此之外,这是一种有趣的解决问题的方式。