Я создал модель под названием User, у которой есть свойство «name».Заполнение моей модели от данных на Facebook (<FBGraphUser>)
Я делаю запрос 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' свойство на вашей модели? – Daniel
В настоящее время для тестирования у меня просто есть свойство «name», но после этого этот вопрос будет решен, я буду расширять мою модель, чтобы хранить основные данные пользователя facebook. – GodFather