Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/102.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios Retain关键字未在Xcode 4.6 ARC项目中引发编译器错误?_Ios_Objective C_Xcode_Automatic Ref Counting - Fatal编程技术网

Ios Retain关键字未在Xcode 4.6 ARC项目中引发编译器错误?

Ios Retain关键字未在Xcode 4.6 ARC项目中引发编译器错误?,ios,objective-c,xcode,automatic-ref-counting,Ios,Objective C,Xcode,Automatic Ref Counting,我刚在一家客户那里开始了一份新合同 我正在着手一个Android开发人员编写的应用程序原型,他是Objective-C的新手(后来他离开了公司,所以无法提问) 该项目使用ARC以Objective-C编写。其中一个文件的属性声明为 @property (nonatomic, retain, readonly) <class> *<name>; @属性(非原子、保留、只读)*; (其中,和替换为每个属性的实际类和属性名称。) 过去,当我试图在ARC项目中包含手动引用计数

我刚在一家客户那里开始了一份新合同

我正在着手一个Android开发人员编写的应用程序原型,他是Objective-C的新手(后来他离开了公司,所以无法提问)

该项目使用ARC以Objective-C编写。其中一个文件的属性声明为

@property (nonatomic, retain, readonly) <class> *<name>;
@属性(非原子、保留、只读)*;
(其中,
替换为每个属性的实际类和属性名称。)

过去,当我试图在ARC项目中包含手动引用计数的代码时,编译器在
retain
关键字上抛出了一个错误。然而,在这个项目中,它并没有抱怨

我检查了,文件没有设置为手动引用计数编译

我编辑了属性定义,并将单词
retain
替换为
strong
,这也可以编译

苹果最近是否改变了编译器,使
retain
成为ARC中
strong
的同义词?相反,
strong
是否是手动引用计数编译的文件中
retain
的同义词


如果是这样的话,这项更改是什么时候做出的?

虽然没有详细的文档记录,但这说明:


请注意同义词,它意味着
retain
strong
属性的含义相同。

来自document Clang 3.8 documentation部分:

保留意味着拥有强大的所有权

据我记忆所及,
retain
在属性语句中一直是
strong
的同义词


这只是property语句中的一个关键字,没有理由暗示这在其他用法中是这两者之间的一般等价物。它所做的是使从弧前到弧前的转换更加容易。

@property(非原子、保留、只读)*;在ARC项目中非常有效。。。在另一个地方有一个错误我有很强的内存,如果是模糊的,当混合使用不同内存管理语义的代码(手动引用计数应用程序中的ARC代码,或者visa应用程序中的ARC代码)时会出现编译器错误。那么,我在想什么呢?是实例变量上的
\uuu strong
\uu保留
限定符吗?我很困惑…是的,可能就是这样。
// The following declaration is a synonym for: @property(retain) MyClass *myObject;
@property(strong) MyClass *myObject;