assign修饰符所有权为__unsafe _unretained 顾名思义,不安全,赋值指针,不对引用计数器进行操作,使用之后若不置为nil,会产生野指针;修饰对象一旦超出作用域再去访问该修饰的对象,访问已废弃对象造成crash;weak修饰符所有权为__weak ,两者都能避免循环引用,和__unsafe_unretained区别在于访问已废弃对象,此弱引用将自动失效,并将失效的对象指向nil
assign修饰符所有权为__unsafe _unretained 顾名思义,不安全,赋值指针,不对引用计数器进行操作,使用之后若不置为nil,会产生野指针;修饰对象一旦超出作用域再去访问该修饰的对象,访问已废弃对象造成crash;weak修饰符所有权为__weak ,两者都能避免循环引用,和__unsafe_unretained区别在于访问已废弃对象,此弱引用将自动失效,并将失效的对象指向nil
本文标题:iOS 代理Delegate修饰为什么要用weak不用assi
本文链接:https://www.haomeiwen.com/subject/aradoqtx.html
网友评论