我需要從JSON中下載數據,並將數據分配給NSOperationQueue
之外的NSData
。這裏是我的代碼:如何將NSData從NSOperationQueue中分配給NSOperationQueue外的NSData
-(void)parsingInfo {
NSURL *url = [NSURL URLWithString:@"http://someJSON.json"];
NSData *data;
[NSURLConnection sendAsynchronousRequest:[NSURLRequest requestWithURL:url] queue:downloadQueue completionHandler:^(NSURLResponse* response, NSData* jsonData, NSError* error){
if(error)
{
// Error Downloading data
NSLog(@"Error");
}
else
{
data = jsonData;
}
}];
if (data) {
NSError *error;
NSDictionary *JSONDic = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:&error];
application = [JSONDic objectForKey:@"Applications"];
NSArray *featured = [JSONDic objectForKey:@"Featured"];
NSDictionary *dict2;
dict2 = [featured objectAtIndex:0];
} else {
NSLog(@"Error, no data!");
}
}
將代碼的'if(data)'部分移到NSOperation隊列中。基本上你的函數會啓動一個新線程來運行下載,然後會立即繼續檢查數據是否存在(可能在下載開始之前)。 – Putz1103
ok,但然後數組應用程序將爲零 –
好了,那麼當異步請求結束時,用一個知道數組「應用程序」的新函數觸發主線程。 – Putz1103