我需要从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