1
我有一个返回值(NSArray)的方法,并且该方法的实现包含调用具有完成块的方法。我想要做的是返回从完成块内获得的NSArray。从包含块的方法返回一个值
有什么办法可以延迟从这个方法返回一个值,直到完成块完成执行?谢谢。
我有一个返回值(NSArray)的方法,并且该方法的实现包含调用具有完成块的方法。我想要做的是返回从完成块内获得的NSArray。从包含块的方法返回一个值
有什么办法可以延迟从这个方法返回一个值,直到完成块完成执行?谢谢。
所以,你的意思是你想是这样的:
- (NSArray*)someMethod {
[self someMethodWithACompletionBlock:^(NSArray *array) {
return array;
}];
}
好,不幸的是,这是不会发生的一样,(因为该块是一个函数,返回里面它使编译器认为你正在尝试从块,而不是封闭的方法)返回一个值,但你可以在阵列的外部参数,并使用阻塞函数返回一个正确突变阵:
- (NSArray*)someMethod {
NSArray *retVal = nil;
[self someMethodWithAnOutParameter:&retVal];
return retVal;
}
你可以提供一个代码示例? – trojanfoe 2013-03-07 12:58:05