创建后NSManagedObject保留计数为2

Bar*_*cha 6 memory-management core-data objective-c ios

我想知道是否有人可以解释为什么新创建的托管对象的保留计数为2.这是我正在使用的代码:

NSManagedObjectContext *context = [self.fetchedResultsController managedObjectContext];
NSEntityDescription *entity = [[self.fetchedResultsController fetchRequest] entity];
Album *newAlbum = [NSEntityDescription insertNewObjectForEntityForName:[entity name] inManagedObjectContext:context];
NSLog(@"Album retain count: %d", [newAlbum retainCount]);
Run Code Online (Sandbox Code Playgroud)

根据该insertNewObjectForEntity方法的文档,它返回一个新创建的自动释放对象.所以我希望保留计数为1而不是2.有人能解释一下吗?

jv4*_*v42 5

保留计数不保证准确,您可能遇到过这样的情况.

我做了一个示例项目,其中对象alloc/init的保留计数为2,释放时为0,等等...

  • 不仅保证不准确,文档还指出"你不太可能从(retainCount)获得有用的信息". (2认同)