サブクラス化して、データをダウンロードしてファイルシステムに保存するためのコードをサブクラスのメソッドNSOperation
に入れることができます。操作が完了すると、次の操作が自動的に実行されます。-main
NSOperation
NSOperationQueue
@implementation MyOperation
- (void) main {
if ([self isCancelled]) {
NSLog(@"** operation cancelled **");
} else {
NSURL *conUrl = [NSURL URLWithString: urlString];
NSError *error;
NSData *conData = [NSData dataWithContentsOfURL: conUrl options: NSDataReadingMappedIfSafe error: & error];
if (!error) {
UIImage *image = [
[UIImage alloc] initWithData: conData];
NSString *cacheDir = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) objectAtIndex: 0];
NSString *jpgFilePath = [NSString stringWithFormat: @"%@/%@.jpg", cacheDir, textLabel];
conData = [NSData dataWithData: UIImageJPEGRepresentation(image, 1.0f)];
[conData writeToFile: jpgFilePath atomically: YES];
}
}
NSLog(@"Operation finished");
}
@end