【发布时间】:2016-02-22 23:15:16
【问题描述】:
我已经离开 iOS 和编程很长时间了,然后又重新开始使用它,我不知道如何最好地处理将数据返回到另一个类的方法中的块。
我创建了一种从 Internet 下载一些数据的方法。
-(NSArray*) getDataFromWeb
{
DataSync * dataS = [[DataSync alloc] init];
[dataS downloadData:@"Full"
successBlock:^(NSArray *dataArray)
{
NSLog(@"Data : %@", dataArray);
myDataArray = [dataArray copy];
}
errorBlock:^(NSError *error)
{
NSLog(@"ERROR: %@",error);
}];
return myDataArray;
}
在过去,我通常会有一个 return 语句返回数组。但是由于该块已关闭在另一个线程上获取数据,因此返回将过早触发,并且不会检索到数据,而我只是得到一个(null)返回。
在块完成工作并用数据填充数组后,将数据传回另一个调用此方法的类的推荐方法是什么?我可以在块的每个成功或错误部分有两个返回状态吗?
【问题讨论】:
-
嗨,马特,这是一个快速的问题。谢谢-代码
-
没关系;答案仍然正确并直接适用于您的问题。您需要从完成块中调用您的更新代码。
标签: ios objective-c