【发布时间】:2011-07-07 06:38:19
【问题描述】:
如何让block同步执行,或者让函数在return语句之前等待handler,这样数据才能从block传回来?
-(id)performRequest:(id)args
{
__block NSData *data = nil;
[xyzclass requestAccessToAccountsWithType:accountType withCompletionHandler:^(BOOL granted, NSError *error) {
data = [NSData dataWithData:responseData];
}];
return data;
}
【问题讨论】:
-
已编辑以制作更具体的代码 sn-p
-
在任何时候,如果您遇到需要进行异步同步的情况,您的设计就会出现严重错误。
-
只是好奇,你为什么要这样做?如果您只想在其他地方完成块,那么您的“performRequest”方法还应该包括一个应该在内部块完成中调用的块。正如 Kunal 指出的那样,您的设计有问题。
标签: iphone ios cocoa-touch ios4 objective-c-blocks