82
“弱”和“分配”之间的区别请告诉我这之间的区别:和是什么在委托财产申报
@property (nonatomic, weak) id <SubClassDelegate> delegate;
这样的:
@property (nonatomic, assign) id <SubClassDelegate> delegate;
我想使用属性为代表。
“弱”和“分配”之间的区别请告诉我这之间的区别:和是什么在委托财产申报
@property (nonatomic, weak) id <SubClassDelegate> delegate;
这样的:
@property (nonatomic, assign) id <SubClassDelegate> delegate;
我想使用属性为代表。
weak
和assign
之间的唯一区别是,如果要被释放的对象weak
属性点,那么weak
指针的值将被设置为nil
,让你永远不会运行访问垃圾的危险。如果您使用assign
,则不会发生这种情况,因此如果该对象从您的下方解除分配,并且您尝试访问它,则将访问垃圾。
对于Objective-C对象,如果您处于可以使用weak
的环境中,则应该使用它。
你知道为什么一些Cocoa Touch框架类仍然在为代表使用assign吗?例如,[UISearchDisplayController]的代表(https://developer.apple.com/library/ios/documentation/UIKit/Reference/UISearchDisplayController_Class/Reference/Reference.html#//apple_ref/occ/instp/UISearchDisplayController/delegate)仍然分配。为什么不更新? – Pwner 2014-02-07 19:26:48
@Pwner看起来像它已被弃用在iOS 8.0 – Stavash 2015-03-01 20:25:31
这里是一个不推荐使用的例子:即使'UITableView'具有'assign'给它的委托:'@property(nonatomic,assign)id delegate;' –
2015-03-20 23:59:36