我想使用異步請求獲取json數據,我正在通過syncrouns來完成此操作,但現在需要更改,但我無法將此代碼修改爲異步,因爲我必須返回NSdataJSON異步請求
+ (NSString *)stringWithUrl:(NSURL *)url
{
// if(kShowLog)
NSLog(@"%@", url);
NSURL *newURL = [NSURL URLWithString:[NSString stringWithFormat:@"%@",url]];
NSURLRequest *urlRequest = [NSURLRequest requestWithURL:newURL
cachePolicy:NSURLRequestReloadIgnoringCacheData
timeoutInterval:1];
// Fetch the JSON response
NSData *urlData;
NSURLResponse *response;
NSError *error;
// NSOperationQueue *opQueue;
// Make synchronous request
urlData = [NSURLConnection sendSynchronousRequest:urlRequest returningResponse:&response error:&error];
return [[NSString alloc] initWithData:urlData encoding:NSUTF8StringEncoding];
}
你爲什麼不嘗試使用[AFNetworking](http://afnetworking.com)? – cojoj
檢查我的回答 – codercat
你有兩個相互矛盾的要求:你必須返回的NSString對象,它是操作的結果,你的方法應是異步的。這是不可能的。調用方無法獲取異步方法_immediately_的結果。修復你的需求。 – CouchDeveloper