【发布时间】:2012-11-07 18:47:25
【问题描述】:
下面我有一些代码应该返回一个数组,来自服务器的响应发生在一个块中:
- (NSMutableArray *)getArray
{
NSMutableDictionary* params =[NSMutableDictionary dictionaryWithObjectsAndKeys:
@"pending", @"command",
@"2" , @"userID",
nil];
[[API sharedInstance] commandWithParams:params
onCompletion:^(NSDictionary *json) {
//result returned
if ([json objectForKey:@"error"]==nil) {
NSMutableArray *res = [[NSMutableArray alloc] init];
[res addObject:@"1234"];
RETURN HERE
} else {
//error
[UIAlertView title:@"Error" withMessage:[json objectForKey:@"error"]];
}
}];
}
解析数据并创建数组后,我想返回为getArray 方法调用创建的数组。到目前为止,经过几个小时的尝试,我没有任何运气,即使尝试了之前关于 stackoverflow 问题的一些建议。任何帮助将不胜感激。
【问题讨论】:
-
您是否知道该块已被执行并且很可能在方法
getArray早已完成并消失的时候完成? -
不要使用
get前缀命名方法,除非您实际使用按引用返回(通常不应该这样做)。
标签: iphone objective-c asynchronous nsarray objective-c-blocks