Pet*_*isu 36 cocoa objective-c
用于合成属性的属性: retain/assign
所有权属性: IOS5 =强/弱IOS4 = retain/unsafe_unretained
强大(iOS4 =保留) - 我是主人,你不能解除这个,然后瞄准罚款=保留
weak(iOS4 = unsafe_unretained) - 与assign,no retain或release相同
所以unsafe_unretained == assign?
@property (nonatomic, assign) NSArray * tmp;
Run Code Online (Sandbox Code Playgroud)
等于?
@property (nonatomic, unsafe_unretained) NSArray * tmp;
Run Code Online (Sandbox Code Playgroud)
反之亦然?
如果是这样,在iOS4中哪一个更喜欢,或者为什么(unsafe_unretained)如果它与assign完全相同?
并且iOS4中的委托应该是unsafe_unretained还是分配?
Mat*_*uch 47
如果是这样,在iOS4中哪一个更喜欢,或者为什么(unsafe_unretained)如果它与assign完全相同?
你应该使用unsafe_unretained
.您希望向您的代码的读者显示您实际上想要使用的弱,但这是不可能的,因为在您要部署的iOS版本上没有弱.
有一天你会放弃对iOS4的支持.然后你可以用它来搜索unsafe_unretained
和替换所有这些weak
.这比搜索assign
和弄清楚你是否真正意味着assign
或更容易weak
使用unsafe_unretained
创建更易读和易懂的代码,开发人员的意图更容易被看到.基本上我们使用的原因相同YES
而不是1
.
归档时间: |
|
查看次数: |
27659 次 |
最近记录: |