以下是代码。它下载缩略图图像,然后尝试基于缩略图文件路径创建图像。但它在方法调用" imageWithContentsOfFile"时给出了EXC_BAD_ACCESS错误。虽然EXC_BAD_ACCESS解决了试图访问已被释放的对象的代码,但我很可能不知道它可能是哪个对象。任何帮助都值得赞赏!
NSBlockOperation *completionOperation = [NSBlockOperation blockOperationWithBlock:^{
if([[NSFileManager defaultManager] fileExistsAtPath:operation.destinationPath ]){
NSString *key = [[MEURLCacheKeyRegister sharedRegister] cacheKeyForURL:operation.fileUrl];
UIImage *image = [UIImage imageWithContentsOfFile:operation.destinationPath];
}else{
DDLogDebug(@"Thumbnail file doesn't exist at %@", operation.destinationPath);
}
}
}];
AFDownloadRequestOperation *requestOperation = [FileServerDownloadUtils downloadOperationForURL:operation.fileUrl
destinationPath:operation.destinationPath
completion:completionOperation];
[self.fileSyncQueue addOperation:requestOperation];
答案 0 :(得分:0)
EXC_BAD_ACCESS
表示该对象在被访问时已被释放。
如果我是你,我会尝试以下事情:
.jpg
而不是.jpg.prv.jpg
扩展名保存文件。initWithContentsOfFile
代替imageWithContentsOfFile
作为imageWithContentsOfFile
autoreleases图片,在罕见的边缘情况下会造成这样的崩溃。block
时,通过对self
进行弱引用来访问对象属性。这样的事情:__weak MyController *weakSelf = self
。然后使用weakSelf
访问块内的属性。这些只是一些线索,可以帮助您进一步挖掘它。您可以使用NSZombie
和其他分析工具来确定它。