我刚刚在客户现场开始了一份新契约(Contract)。
我正在着手开发一个应用程序原型(prototype),该原型(prototype)由一位刚接触 Objective-C 的 Android 开发人员编写。 (他已经离开公司,因此无法提问。)
该项目是使用 ARC 在 Objective-C 中编写的。其中一个文件的属性声明为
@property (nonatomic, retain, readonly) <class> *<name>;
(其中 <class>
和 <name>
替换为每个属性的实际类和属性名称。)
过去,当我尝试在 ARC 项目中包含手动引用计数代码时,编译器会在 retain
上抛出错误关键词。然而,在这个项目中,它并没有提示。
我检查了一下,文件没有设置为使用手动引用计数进行编译。
我编辑了属性定义并替换了单词 retain
与 strong
, 也可以编译。
Apple 最近是否更改了编译器以便 retain
是 strong
的同义词在弧?相反,是 strong
retain
的同义词在使用手动引用计数编译的文件中?
如果是,这个改变是什么时候做的?
最佳答案
好吧,它没有特别好的记录,但是这个 ARC transitioning doc状态:
// The following declaration is a synonym for: @property(retain) MyClass *myObject;
@property(strong) MyClass *myObject;
请注意 synonym 这个词,这意味着 retain
和 strong
属性表示同一事物。
关于ios - 保留关键字不会在 Xcode 4.6 ARC 项目中抛出编译器错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32271830/