一些关于ios应用程序内存保留的疑问


  1. 在ios应用程序中保留NSObject需要什么?

  2. retainCount==1retainCount=2、……之间有什么区别,。。。。。等

  3. 属性如何处理保留和释放实例变量?

  4. 当我保留/释放NSObject时,保留计数增加/减少一,内存中到底发生了什么?

  1. 保留一个对象表示您正在取得该对象的所有权。所以你必须在完成它之后释放它一次
  2. retainCount=1表示它是从一个地方被强烈引用的。如果retainCount=2,则从两个位置强烈引用它
  3. 属性(取决于它是保留、复制还是分配属性)处理内存管理的方式不同
  4. 只保留计数告诉我们对象有多少字符串引用。只要它大于0,就不会从内存中删除该对象。一旦它变为0,obj就会从内存中删除(调用该对象的dealloc)

编辑

  1. 如果是保留属性,则每次使用"."设置保留属性时,然后释放旧值,保留新值并将其分配给属性。复制也是如此,只是向新值发送一个副本而不是保留。如果是分配特性,则新值将直接分配给特性(不释放,不保留)

最新更新