Kee*_*raj 3 iphone memory-management
我是iphone开发的新手.任何人都可以告诉我什么时候使用强,什么时候使用弱参考,以及原子和非原子之间有什么区别.我经历了很多链接,但我仍然不清楚它.我还想知道ios5之前使用的保留,复制和分配之间的差异.
任何帮助表示赞赏..
谢谢,拉吉
Cth*_*utu 13
在设计数据时,您需要了解所有权的概念.数据拥有向下.所有权永远不会回溯到您的数据层次结构.如果A有一个指针指向B,而B指向C,那么C拥有A,你有一个循环参考图,由于A间接引用C而C引用A而导致内存泄漏A.发布A并且它没有得到删除,因为C仍然有一个引用,它不会被删除,除非A做 - 一个catch 22.
为了避免这种情况,你使用强指针指向"向下"你的数据,并使用弱指针进行任何反向引用(例如父指针).
如果属性是原子属性,它会生成一个允许从多个线程设置的setter.您不能拥有一个线程同时更改另一个属性的竞争条件.非原子属性没有该线程锁定系统.
最后,当您通过在对象上调用[myObject retain]将对象分配给它时,retain属性会增加对象的引用计数.复制调用[myObject copy]使属性不引用原始属性,但复制和赋值只是一个没有引用计数调整的直接赋值.
归档时间: |
|
查看次数: |
11410 次 |
最近记录: |