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