2012-04-17 59 views
5

我想用較短的超時下載,以便速度更快,並防止應用程序崩潰而導致連接不良。如何設置dataWithContentsOfURL的超時時間:url

- (void) CreateTitleView { 
    NSURL* url; 
    NSData* imageData; 
    imageData = [NSData dataWithContentsOfURL:url ]; 
    UIImage* image = [UIImage imageWithData:imageData]; 
} 

我不擅長目標C,所以我請求你的幫助,這樣做。謝謝。

+0

短超時不會使您的連接更快!但看看NSURLConnection。 – 2012-04-17 19:43:48

回答

2

您無法通過設置超時來控制下載速度。這隻會控制你的應用程序在放棄下載之前等待的時間。您應該重構應用程序以在後臺加載圖像數據,以便UI保持響應,直到下載完成。

檢出NSURLConnection(sendAsynchronousRequest)或AFNetworking

+1

好的。我知道較短的超時不會導致下載速度更快。如何從無法訪問的網址下載,設置超時至少可以避免不必要的下載。那麼如何在'[NSData dataWithContentsOfURL:url]'上設置超時? – Yeung 2013-03-06 04:37:16

+0

@Yeung - 你不能afaik。如果您需要能夠控制從URL檢索數據的超時設置,請使用['NSURLConnection'](http://developer.apple.com/library/mac/#documentation/Cocoa/Reference改爲class /代替/Foundation/Classes/NSURLConnection_Class/Reference/Reference.html)。 – Perception 2013-03-06 06:35:46

9

這幾天,這是可能的。該API是這樣的:

NSURLResponse* urlResponse; 
NSError* error; 
NSMutableURLRequest* urlRequest = [NSMutableURLRequest requestWithURL:url cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:20]; 
NSData* d = [NSURLConnection sendSynchronousRequest:urlRequest returningResponse:&urlResponse error:&error];