【发布时间】:2014-10-03 07:12:13
【问题描述】:
我对这个块有问题。我试图获取NSURLSession 块内的数据。
这是我的代码
-(NSDictionary *) RetrieveData{
NSURLSession * session = [NSURLSession sharedSession];
NSURL * url = [NSURL URLWithString: self.getURL];
dataList =[[NSDictionary alloc] init];
NSURLSessionDataTask * dataTask = [session dataTaskWithURL:url completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
self.json = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil];
}];
return self.dataList;
[dataTask resume];
}
是否可以获取NSURLSession的块内的数据?
【问题讨论】:
-
您是否尝试在块外使用 JSON?该块异步运行,因此您将在执行 JSON 解析的块发生之前早于点击
[dataTask resume]之后的行。 -
嗨@Rob 我更新了我的帖子。是的,我希望 json 从块中获取数据并在我的方法中返回它。
-
你没有。如果你想把它传回去,你必须使用完成块模式。
-
如果我使用这个方法,它仍然返回 null
-
您不应该从此方法返回任何内容(或者可能只返回
NSURLSessionDataTask指针)。您在完成块中将数据传回,例如stackoverflow.com/a/26107818/1271826
标签: ios objective-c objective-c-blocks nsurlsession