我正在将我的项目转换为 ARC,当我到达一些NSOperation
负责在后台下载一些图像的子类时,代码开始崩溃。
所以我有我的NSOperation
子类及其主要代码:
- (void)main
{
Post *p = [[Post alloc] initWithNewManagedObjectContext];
Post *post = (Post *)[p findById:postId];
[post downloadAndProcessImageOfTypeThumbOrAll:thumbOrAll];
if (![self isCancelled]) {
[target performSelectorOnMainThread:afterCompletionAction withObject:postId waitUntilDone:NO];
}
}
该代码在没有ARC的情况下(以及适当的版本)编译时有效,但是当它转换为 ARC 时,它在完成 main 方法后立即收到EXC_BAD_ACCESS异常。
我想这与 ARC 在应该之前释放任何对象有关,也许是 Posts 对象。但我不知道如何将它们保留更长时间。
此外,[[Post alloc] initWithNewManagedObjectContext];
创建或重用现有上下文以从 CoreData 访问对象。
有什么提示吗?