【发布时间】:2012-03-14 18:29:18
【问题描述】:
这有什么区别:
@property (nonatomic, weak) id <SubClassDelegate> delegate;
还有这个:
@property (nonatomic, assign) id <SubClassDelegate> delegate;
我想为代表使用属性。
【问题讨论】:
标签: objective-c ios ios5 delegates properties
这有什么区别:
@property (nonatomic, weak) id <SubClassDelegate> delegate;
还有这个:
@property (nonatomic, assign) id <SubClassDelegate> delegate;
我想为代表使用属性。
【问题讨论】:
标签: objective-c ios ios5 delegates properties
weak 和assign 的唯一区别是如果weak 属性指向的对象被释放,那么weak 指针的值将被设置为nil,这样你就永远不会冒着接触垃圾的风险。如果您使用assign,则不会发生这种情况,因此如果对象从您下方被释放并且您尝试访问它,您将访问垃圾。
对于 Objective-C 对象,如果您处于可以使用weak 的环境中,那么您应该使用它。
【讨论】:
UITableView 的代表也有 assign:@property (nonatomic, assign) id <UITableViewDelegate> delegate;