2013-03-07 60 views
1

我有一个返回值(NSArray)的方法,并且该方法的实现包含调用具有完成块的方法。我想要做的是返回从完成块内获得的NSArray。从包含块的方法返回一个值

有什么办法可以延迟从这个方法返回一个值,直到完成块完成执行?谢谢。

+0

你可以提供一个代码示例? – trojanfoe 2013-03-07 12:58:05

回答

0

所以,你的意思是你想是这样的:

- (NSArray*)someMethod { 
    [self someMethodWithACompletionBlock:^(NSArray *array) { 
     return array; 
    }]; 
} 

好,不幸的是,这是不会发生的一样,(因为该块是一个函数,返回里面它使编译器认为你正在尝试从块,而不是封闭的方法)返回一个值,但你可以在阵列的外部参数,并使用阻塞函数返回一个正确突变阵:

- (NSArray*)someMethod { 
    NSArray *retVal = nil; 
    [self someMethodWithAnOutParameter:&retVal]; 
    return retVal; 
}