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 教程有更多关于如何做到这一点的细节

或者,使用NSOperation'scompletionBlock来执行图像显示。

于 2012-11-22T20:38:02.840 回答