委托是什么
2024-09-24 05:15:02
委托一个对象保存另一个对象的引用,被引用的对象实现了事先确定的协议,该协议用于将引用对象中的变化通知给被引用对象。委托和委托方双方的property声明属性都是assign而不是retain为了避免循环引用造成的内存泄露循环引用的问题这样理解比如在main函数中创建了两个类的对象A和B,现在引用计数是1。
现在让A和B互相引用A有一个属性是B对象,属性说明是retain;B有一个属性是A对象,属性说明是retain,现在两个对象的引用计数都增加1,都变成了2。现在执行[Areleasw];[Brelease];此时创建对象的main函数已经释放了自己对对象的所有权,但是此时A和B的引用计数都还是1,因为他们互相引用了。
这使你发现A和B将无法释放,因为要想释放A必须先释放B,在B的dealloc方法中再释放A。同理,想要释放B必须先释放A,在A的dealloc方法中再释放B。所以这两个对象将一直存在内存中而不释放,这就是所谓的循环引用的问题。
- 上一篇:实际经济增长速度称为什么
- 下一篇:一带一路是什么意思为什么提出一带一路战略
猜你喜欢
-
翡翠佛吊坠有什么讲究
阅读量:87 -
男士佩戴翡翠戒指有什么意义
阅读量:68 -
翡翠莲花有什么寓意
阅读量:72 -
渔夫的故事说明了什么
阅读量:66 -
白雪公主的故事说明了什么
阅读量:58 -
翡翠如意配什么链子好看
阅读量:64 -
翡翠貔貅怎么净身
阅读量:13 -
翡翠莲花手串有什么寓意
阅读量:23 -
翡翠鹿吊坠寓意是什么
阅读量:79 -
翡翠龙凤的寓意是什么
阅读量:13
猜你喜欢
-
阅读量:23
-
阅读量:7
-
阅读量:69
-
阅读量:79
-
阅读量:47
-
阅读量:91
-
阅读量:61
-
阅读量:84
-
阅读量:9
-
阅读量:77