イメージをダウンロード (およびディスクに保存) するために NSOperations を使用する必要がありましたが、メモリが解放されませんでした! いくつかのグーグル検索の後、保持サイクルでの操作であるフックを見つけました。コードを修正しようとしましたが、問題はまだここにあります。
誰でも私のコードでエラーを見つけることができますか?
私のコードがあります:
NSOperationQueue *queue = [[NSOperationQueue alloc] init];
queue.maxConcurrentOperationCount = 10;
__block NSBlockOperation *completionOperation = [NSBlockOperation blockOperationWithBlock:^{
[[NSOperationQueue mainQueue] addOperationWithBlock:^{
complection(YES); // this is a method's callback actually
}];
}];
for (NSURL* url in imagesURLs) {
__weak NSBlockOperation *downdloadOperation = [NSBlockOperation blockOperationWithBlock:^{
NSData *imageData = [NSData dataWithContentsOfURL:url];
if (imageData) {
[[RuzaImageDiskHandler instance] saveImage:imageData forUrlKey:url];
}
}];
[completionOperation addDependency:downdloadOperation];
}
[queue addOperations:completionOperation.dependencies waitUntilFinished:NO];
[queue addOperation:completionOperation];