【发布时间】:2016-08-18 02:26:48
【问题描述】:
搜索此类错误后:
变量不可赋值(缺少 __block 类型说明符)
我找到了以下解决方案 Assign a variable inside a Block to a variable outside a Block,在阅读了 __block 之后,我无法从接受的答案中受益,而且我的代码是不同的场景。
这是我正在使用的代码:
NSDictionary *strongUser = [[NSDictionary alloc]init];
__block NSDictionary *user = strongUser;
NSMutableDictionary* parameters = [NSMutableDictionary dictionary];
[parameters setValue:@"id, name, email" forKey:@"fields"];
[[[FBSDKGraphRequest alloc] initWithGraphPath:@"me" parameters:parameters]
startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) {
user = result;
}];
NSLog(@"%@",user);
NSLog什么都不打印
我想要的是将结果值赋予块外的外部变量。
【问题讨论】:
-
你的完成处理程序呢,它完成了吗?
-
我的完成处理程序完成
-
好的,'result'参数就是你想要的?
-
我认为您对异步代码中运行的顺序感到困惑。您应该将 API 调用下方的所有代码移动到您从完成块调用的单独方法中。将结果传递给该方法。
-
是的,你现在我明白了
标签: ios objective-c