这有什么区别:
@property (nonatomic, weak) id <SubClassDelegate> delegate;
还有这个:
@property (nonatomic, assign) id <SubClassDelegate> delegate;
我想将属性用于代表。
Answers:
weak
和之间的唯一区别assign
是,如果weak
释放了属性所指向的对象,则weak
指针的值将设置为nil
,这样您就永远不会冒访问垃圾的风险。如果使用assign
,则不会发生,因此,如果从您下面释放该对象并尝试访问它,则将访问垃圾。
对于Objective-C对象,如果您在可以使用的环境中weak
,则应该使用它。
UITableView
有assign
其代表:@property (nonatomic, assign) id <UITableViewDelegate> delegate;