这一切都让我疯狂。 我只是在我的iPhone应用程序中集成了facebook。 在登录对话框中输入我的用户名和密码后,将调用此方法。
- (void)request:(FBRequest*)request didLoad:(id)result {
if ([request.method isEqualToString:@"facebook.fql.query"]) {
NSLog(@"result %@",result);
NSArray* users = result;
NSLog(@"users %@",users);
NSDictionary* user = [users objectAtIndex:0];
NSString* name = [user objectForKey:@"name"];
self.facebookName = name;
if (_posting) {
[self postToWall];
_posting = NO;
}
}
}
但在此之后,应用程序大部分时间崩溃,当我尝试记录“result
”数组时,它似乎是空的。为什么会这样?
我该怎么办?请建议。
答案 0 :(得分:2)
使用此代码
NSArray *users=[[NSArray alloc]initWithObjects:result, nil];
NSLog(@"users %@",users);
NSDictionary* user = [[NSDictionary alloc]initWithObjectsAndKeys:users,@"users", nil];
NSLog(@"%@",user);
答案 1 :(得分:0)
我明白了这个原因。
这是因为会话在两者之间经常丢失。
所以我不得不在facebook登录动作事件中调用[session resume]
并且以这种方式,如果任何会话都失去了任何机会,那么前一个会话将恢复,并且“result
”在(void)request:(FBRequest*)request didLoad:(id)result
方法中似乎不是零。
希望这有助于那些陷入同一问题的人。