-
在ios应用程序中保留
NSObject
需要什么? -
retainCount==1
、retainCount=2
、……之间有什么区别,。。。。。等 -
属性如何处理保留和释放实例变量?
-
当我保留/释放
NSObject
时,保留计数增加/减少一,内存中到底发生了什么?
- 保留一个对象表示您正在取得该对象的所有权。所以你必须在完成它之后释放它一次
- retainCount=1表示它是从一个地方被强烈引用的。如果retainCount=2,则从两个位置强烈引用它
- 属性(取决于它是保留、复制还是分配属性)处理内存管理的方式不同
- 只保留计数告诉我们对象有多少字符串引用。只要它大于0,就不会从内存中删除该对象。一旦它变为0,obj就会从内存中删除(调用该对象的dealloc)
编辑:
- 如果是保留属性,则每次使用"."设置保留属性时,然后释放旧值,保留新值并将其分配给属性。复制也是如此,只是向新值发送一个副本而不是保留。如果是分配特性,则新值将直接分配给特性(不释放,不保留)