在NSManagedObjectContext
方法的executeFetchRequest:error:
文档中,它表示它返回一个数组,但它没有提到数组是自动释放还是保留count = 1。
我假设它是自动释放的,因为它似乎是一种方便的方法,但不确定。
再次编辑
捂脸
我在自动释放池释放之前检查了保留计数。
感谢不打电话retainCount
的提示 - 我将来会避免它。这是一个很好的例子,它让我误入歧途。
答案 0 :(得分:3)
根据Object Ownership Policy,只有前缀为“alloc”,“new”,“copy”和“mutableCopy”的方法才会返回您拥有的对象。 executeFetchRequest:error:
也不例外。因此,您不拥有所返回的数组,并且如果您需要保留它,则必须通过向其发送retain
消息来声明对其的所有权。否则,它将被释放(在将来的某个时候)。
答案 1 :(得分:2)
它返回一个将来某个时候会消失的对象,除非你保留它。是否自动释放是一个实现细节。除此之外,您无法判断某些内容是否已自动释放。
此外:
没用;对象的绝对保留计数是一个实现细节,可以是任何数量的值,无明显原因