こんにちは私は次のコードでInstrumentから報告されたリークを受け取っています。
dispatch_async(requestQueue, ^{
NSURL *urlRequest = [NSURL URLWithString:url];
NSError *error = nil;
NSData *imageData = [NSData dataWithContentsOfURL:urlRequest
options:0
error:&error];
if (error != nil)
{
NSLog(@"%@ %@", [error localizedDescription], [error localizedFailureReason]);
[[[[UIAlertView alloc] initWithTitle:[error localizedDescription]
message:[error localizedFailureReason]
delegate:nil
cancelButtonTitle:NSLocalizedString(@"OK", nil)
otherButtonTitles:nil] autorelease] show];
return;
}
dispatch_async(dispatch_get_main_queue(), ^{
image = [UIImage imageWithData:imageData];
if (delegate != nil && [delegate respondsToSelector:@selector(imageRequestDone:)])
{
[delegate imageRequestDone:image];
}
});
});
Leaksは、私の画像= [UIImage imageWithData:imageData]がリークしていると報告していますが、その理由は何ですか?自動リリースされたUIImageオブジェクトのNSAutoreleasePoolが必要ですか?
ところで、それが問題なら、私は__block UIImage * image=nil;と宣言しました。上記のコードを入力する前に、ImageCacheで画像をチェックするためです。