iOS中delegate代理对象使用weak和assign哪个

来源:互联网 发布:苹果电脑安装软件 编辑:程序博客网 时间:2024/05/01 08:59
       之前不停应用的是assign,本日调试一段代码的时间,发明顺序会crash失落,报错EXC_BAD_ACCESS 经由一番研讨,发明若是应用 @property (nonatomic, assign, readwrite) id delegate; 声明一个delegate之前一直使用的是assign,今天调试一段代码的时候,发现程序会crash掉,报错EXC_BAD_ACCESS


经过一番研究,发现如果使用

@property (nonatomic, assign, readwrite) id delegate;

声明一个delegate,那么即便delegate指向的对象销毁了,delegate中依然会保存之前对象的地址

即,delegate成为了一个野指针...


而使用weak,则不会有上述问题,当delegate指向的对象销毁后,delegate = nil,

所以答案就是,使用weak。

0 0
原创粉丝点击