Създадох модел, наречен User, който има свойство "име".
Правя заявка към API на facebook (използвайки най-новия SDK за iOS), идеята е да задам свойството ми user.name, когато facebook върне данните.
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)
Благодаря.
FBGraphUser
данните към вашия модел или просто иматеname
свойство на вашия модел? - person Daniel   schedule 07.06.2013