Objective-C中的弱属性设置器属性和强属性设置器属性有什么不同?
@property(retain, [weak/strong]) __attribute__((NSObject)) CFDictionaryRef myDictionary;
有什么影响和好处?
我听说在iOS4上不能使用弱版,我们需要使用Assign.
弱类似于赋值吗?
Objective-C中的弱属性设置器属性和强属性设置器属性有什么不同?
@property(retain, [weak/strong]) __attribute__((NSObject)) CFDictionaryRef myDictionary;
有什么影响和好处?
我听说在iOS4上不能使用弱版,我们需要使用Assign.
弱类似于赋值吗?
您可以打开或关闭特定文件的ARC.如果打开了,你就不能使用retain
、release
、autorelease
等.相反,属性使用strong
weak
,变量使用__strong
__weak
(默认为__strong
).STRONG等同于保留,但是ARC将为您管理版本.
只有在希望避免保留循环(例如,父项保留子项,子项保留父项,因此这两个项都不会被释放)时,才会使用弱.
"免费搭桥"部分(从NS
投到CF
投)有点棘手.您仍然需要手动管理CF对象的CFRelease()
和CFRetain()
.当您将它们转换回NS对象时,您必须告诉编译器有关保留计数的信息,以便它知道您做了什么.
全部是here.