【问题标题】:Retain count -1: can somebody explain to me?保留计数-1:有人可以向我解释吗?
【发布时间】:2013-10-17 11:09:22
【问题描述】:

图片说明问题(不荒谬??!)

【问题讨论】:

    标签: release init retain counting alloc


    【解决方案1】:

    首先,-retainCount 方法返回一个无符号整数,因此根据定义,它不能为负数。您以错误的形式打印它,因为您错误地认为它是一个有符号整数。其实是NSUIntegerMax

    其次,-retainCount 一般没有用处。甚至the documentation 说:

    不要使用这种方法。 (必填)

    ...

    此方法在调试内存管理问题时没有任何价值。 因为任意数量的框架对象都可能在 为了保持对它的引用,同时自动释放 池可以在一个对象上持有任意数量的延迟释放,它 您不太可能从这种方法中获得有用的信息。

    第三,类可以覆盖-retainCount 并返回一些自定义的东西。这通常在具有自定义内存管理特性的类中完成,不能用保留计数很好地描述。之所以如此,是因为来自字符串文字的字符串对象是静态分配的,并且在程序的整个生命周期中都存在。它们不是内存管理的。因此,它们返回一个虚假的保留计数 NSUIntegerMax

    【讨论】:

      猜你喜欢
      • 2011-05-08
      • 1970-01-01
      • 2012-04-09
      • 2021-02-18
      • 2010-10-28
      • 1970-01-01
      • 2015-07-30
      • 2023-02-08
      • 2011-01-08
      相关资源
      最近更新 更多