在ARC环境下,有可能出现循环应用的时候我们使用week,比如我们尝试用的delegate属性,或者自身已经强引用一次了,此时也会考虑使用week。
week声明的属性表示该属性定义了一种非拥有关系,这种属性在设置新值的时候,setter方法既不保留新值,也不释放旧值,而在属性所指向的对象被释放的时候,属性值也会被清空。assgin特性与week类似,而assgin的setter方法只会对纯类型的简单赋值操作。
assin可用于非OC对象,而week只能用于OC对象。
补充:对象调用release并不会销毁对象,只会将对象的应用计数-1,只有当对象的引用计数为0的时候对象才被销毁
网友评论