ではこれが私のviewDidLoad
方法画像読み込み中 - コード
NSOperationQueue *queue = [NSOperationQueue new];
NSInvocationOperation *op = [[NSInvocationOperation alloc]
initWithTarget:self
selector:@selector(downloadImage)
object:nil];
[queue addOperation:op];
//他の方法での残りの部分で書かれています。
- (void)downloadImage{
NSData* imageData = [[NSData alloc] initWithContentsOfURL:[NSURL URLWithString:person.picURL]];
UIImage* image = [[UIImage alloc] initWithData:imageData] ;
[self showImage: image];
}
上記のコードを[self showImage: image];
より上に追加しようとしましたが、例外が発生しました。
1)[self performSelectorOnMainThread:@selector(showImage:) withObject:image waitUntilDone:NO];
2)[self performSelectorInBackground:@selector(showImage:) withObject:image];
//これはshowImage
コードです。
- (void)showImage:(UIImage *)img {
if (img != nil)
{
myImageView = [[UIImageView alloc] initWithImage:img];
myImageView.frame = CGRectMake(20, 20, 132, 124);
[scrollView addSubview:myImageView];
[pictureOfPerson setImage:img];
}
}
私はAsynchronously
に画像をダウンロードしてキャッシュしようとしています。画像はAsynchronously
にダウンロードされますが、キャッシュされているかどうかはわかりません。画像をキャッシュし、画像をダウンロードしている間、ビュー負荷が再び
2)、私は別のビューに何をクリックした場合ときにそれを使用する方法
1)。その後、私はダウンロードを停止する必要があります。どうすればこのコードを書くことができますか?私はviewDidDissapearメソッドでそれを記述する必要があることを知っています。
3.)私のコードは正しいですか?私は何かを見逃してしまったのですか、これを行うにはより良いアプローチがありますか?そのチュートリアルやいくつかのサンプルコード場合
これをプログラムで行うにはどうすればよいですか? 'NSMutableDictionaryのようなクラスプロパティを使用してUIImageデータを格納し、URLに関連付けることができます。存在する場合は使用し、そうでない場合は画像をダウンロードしてください。 ' – shajem
'self.imageCache'とは何ですか? – shajem
imageCacheがNSMutableDictionaryになります。 –