我有一个方法应该返回一个填充在后台线程中的数组。我想等待返回语句,直到数组完全填充。我该怎么做?我知道如何处理没有返回类型的数据,但我想调用这个函数并获取填充的数组。
示例(此处数组最终为空,因为它在填充数组之前返回 - 我想做一些事情来返回填充的数组):
-(NSArray*)fetchSomeArray{
__block NSArray *arrayToReturn;
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,(unsigned long)NULL), ^(void) {
NSArray *someArray = ...; // getting some array from database
arrayToReturn = [NSMutableArray new];
for(int i=0;i<someArray.count;i++){
[arrayToReturn addObject:...];
}
});
return arrayToReturn;
}