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

时间:2012-01-13 04:41:26

标签: objective-c ios memory retain

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

  2. retainCount==1retainCount=2,.....等有什么区别?

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

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

1 个答案:

答案 0 :(得分:-1)

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

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