我想我有一个问题,可能与核心数据中的保留周期有关。代码如下,其中 self.image 也是一个 NSManagedObject:
- (void)setImage:(UIImage*)image1 andThumbnail:(UIImage*)image2
{
self.image.data = UIImageJPEGRepresentation(image1, 0.85); // This is autoreleased
self.thumbnail = UIImageJPEGRepresentation(image2, 0.85); // This is autoreleased
}
显然,“self.image.date =”有一个永远不会释放的保留(我认为它在 self.image 和 self 之间)。因此,self 对象将永远不会被释放,因此会泄漏。
编辑:所以基本上我和这里有同样的问题:https ://devforums.apple.com/message/246219#246219 我使用完全相同的结构,其中前面代码中的 self 对应于给定链接中的 Bar 。我也有相同的视图控制器结构。但是, refreshObject 没有帮助。
我尝试使用 NSManagedObjectContext refreshObject 方法来打破保留周期(如 Apple 文档中所建议的那样)。它对retainCount 没有影响。我可能没有以正确的方式使用它,但我找不到太多关于它的信息。如果我使用 NSManagedObjectContext:reset: 当我回到根视图控制器时会崩溃。
谢谢!