0

XCode 4.5.2; 次のようにリモートサーバーから画像をダウンロードしています:

- (void)viewDidLoad
{
[super viewDidLoad];

NSOperationQueue *queue = [NSOperationQueue new];
NSInvocationOperation *operation = [[NSInvocationOperation alloc]
                                    initWithTarget:self
                                    selector:@selector(loadImage)
                                    object:nil];

[queue addOperation:operation];
}

- (void)loadImage{
self.theobject = [RemoteQuery loadObjectWithImage:self.imageKey];

[self performSelectorOnMainThread:@selector(displayImage) withObject:nil waitUntilDone:YES];
}

-(void)displayImage{
UIImage *image = [UIImage imageWithData: self.theobject.imageData];
[self.imageView setImage:image];

}

これは IOS シミュレーターでは正常に機能しますが、デバイスでは機能しません。[RemoteQuery loadImage]からデータをロードする前にdisplayImageを呼び出しているようです。画像を表示する前に、画像が正しく読み込まれたことを確認するにはどうすればよいでしょうか?

4

1 に答える 1

0

イメージのダウンロードが終了したときに元のオブジェクトにコールバックするデリゲート プロトコルを作成します。このNSOperation チュートリアルには、これを行う方法の詳細が記載されています

または、 を使用して画像表示を実行しますNSOperationcompletionBlock

于 2012-11-22T20:38:02.840 に答える