assign和weak的区别

2017-07-03  本文已影响0人  AmazingMasterYi

assign和weak的区别

@property (nonatomic, assign) Person *person;   *__unsafe_unretained _person;

__unsafe_unretained的特点:
1.不是强引用, 不能保住OC对象的命
2.如果引用的OC对象销毁了, 指针并不会被自动清空, 依然指向销毁的对象(很容易产生野指针错误: EXC_BAD_ACCESS)

@property (nonatomic, weak) Person *person;  // Person * _Nullable __weak _person;

__weak的特点:
1.不是强引用, 不能保住OC对象的命
2.如果引用的OC对象销毁了, 指针会被自动清空(变为nil), 不再指向销毁的对象(永远不会产生野指针错误)
上一篇下一篇

猜你喜欢

热点阅读