之前一直使用的是assign,今天调试一段代码的时候,发现程序会crash掉,报错EXC_BAD_ACCESS
经过一番研究,发现如果使用
@property (nonatomic, assign, readwrite) id delegate;
声明一个delegate,那么即便delegate指向的对象销毁了,delegate中依然会保存之前对象的地址
即,delegate成为了一个野指针...
而使用weak,则不会有上述问题,当delegate指向的对象销毁后,delegate = nil
--------------------------------------------
所以答案就是,使用weak。
使用weak避免Objective-C中EXC_BAD_ACCESS错误
本文探讨了在Objective-C编程中遇到EXC_BAD_ACCESS异常时,使用assign与weak关键字的区别,强调使用weak可以有效防止野指针问题。
4158

被折叠的 条评论
为什么被折叠?



