Im使用this tutorial在我的應用程序中異步加載圖像。我修改了該代碼,以便將圖片保存到iPhone的本地文件,並可以在離線時加載。我想使它在一定的時間間隔(可能15-20秒)之後超時,並加載保存的文件而不是下載新的文件。我找到了使Web視圖超時的方法,但我不知道如何使用異步方法來完成此操作。我怎樣才能讓這段代碼加載url的方式發出超時請求?如何使URL加載請求超時?
感謝
編輯:我想使它超時如果它不能連接到網站,並如果圖片的下載時間過長。
- (void)viewDidLoad
{
[super viewDidLoad];
NSOperationQueue *queue = [NSOperationQueue new];
NSInvocationOperation *operation = [[NSInvocationOperation alloc]
initWithTarget:self
selector:@selector(loadImage)
object:nil];
[queue addOperation:operation];
}
- (void)loadImage {
NSData* imageData = [[NSData alloc] initWithContentsOfURL:[NSURL URLWithString:@"http://www.TestURL.com/test.jpg"]];
UIImage* image = [[UIImage alloc] initWithData:imageData];
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *localFilePath = [documentsDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@"test.jpg"]];
[imageData writeToFile:localFilePath atomically:YES];
[self performSelectorOnMainThread:@selector(displayImage:) withObject:image waitUntilDone:YES];
}
看吧:可能重複:http://stackoverflow.com/questions/2149929/how-to-know-when-nsdatas-initwithcontentsofurl-has-finished-loading – trumpetlicks