rs1*_*ith 42 cocoa-touch objective-c
当您没有在目标C中列出任何内容时,适当的默认属性是什么?
例如,如果我写这个:
@property float value;
Run Code Online (Sandbox Code Playgroud)
默认值是什么,比如它是只读的,是否会保留......等等?
jus*_*tin 65
默认/隐含值是atomic
,readwrite
和assign
.
原子
这意味着该值以原子方式读/写.相反,有点普遍的误解,原子也不能等同于线程安全.简单来说,它保证您读取或写入的值将被整体读取或写入(使用访问器时).即使您一直使用访问器,它也不是严格的线程安全的.
读写
该物业有一个二传手和一个吸气剂.
分配
此默认值通常用于POD(普通旧数据)和内置类型(例如int
).
对于NSObject
类型,您将倾向于持有强大的参考.在大多数情况下,你会申报财产copy
,strong
或retain
.assign
不执行引用计数操作.另见:http://clang.llvm.org/docs/AutomaticReferenceCounting.html#property-declarations
强大
strong
在某些情况下,该属性可能隐含在ARC下:
在没有所有权来源的情况下合成的可保留对象指针类型的属性具有其关联实例变量的所有权(如果它已经存在); 否则,[开始Apple 3.1,LLVM 3.1]其所有权隐含强大.在此次修订之前,合成这样的财产是不合理的.
归档时间: |
|
查看次数: |
15231 次 |
最近记录: |