我创建了一个名为 User 的模型,它有一个属性“name”。
我正在向 facebook API 发出请求(使用最新的 iOS SDK),这个想法是在 facebook 返回数据时设置我的 user.name 属性。
facebook 将数据返回到startWithCompletionHandler
块中,但我无法将此数据设置为我的用户对象,我只能访问startWithCompletionHandler
. 当我尝试从我的模型返回的块中访问数据时NULL
。
当 facebook 请求返回时,如何填充我的模型/对象?
我当前的方法实现:
+ (void)requestUserData:(User *)userModel {
if(FBSession.activeSession.isOpen) {
[[FBRequest requestForMe] startWithCompletionHandler:^(FBRequestConnection *connection, NSDictionary<FBGraphUser> *user, NSError *error) {
if(user.name) [self setUserData:user userModel:userModel];
}];
}
}
+ (void)setUserData:(NSDictionary<FBGraphUser> *)user userModel:(User *)userModel {
userModel.name = user.name;
}
和电话:
__block User *user = [[User alloc] init];
[GFFacebookHelpers requestUserData:user];
NSLog(@"user: %@", user.name); //this part prints 2013-06-06 18:03:43.731 FacebookClassTest[74172:c07] user: (null)
谢谢。