【问题标题】:Facebook iOS SDK pulling friends data issueFacebook iOS SDK 拉取好友数据问题
【发布时间】:2013-02-03 07:53:31
【问题描述】:

我正在尝试在我的应用中实现 Facebook iOS SDK 3.1.1,但遇到了问题。

当我尝试运行时

NSString *query =
@"SELECT uid, name, pic_square FROM user WHERE uid IN "
@"(SELECT uid2 FROM friend WHERE uid1 = me() LIMIT 25)";
// Set up the query parameter
NSDictionary *queryParam =
[NSDictionary dictionaryWithObjectsAndKeys:query, @"q", nil];
// Make the API request that uses FQL
[FBRequestConnection startWithGraphPath:@"/fql"
                             parameters:queryParam
                             HTTPMethod:@"GET"
                      completionHandler:^(FBRequestConnection *connection,
                                          id result,
                                          NSError *error) {
                          if (error) {
                              NSLog(@"Error: %@", [error localizedDescription]);
                          } else {
                              NSLog(@"Result: %@", result);
                          }
                      }];

我的应用程序在 NSLog(@"Result: %@", result); 崩溃如果有人可以帮助我,那将不胜感激。我正在尝试使用每个朋友的用户数据返回用户的朋友列表。下面是调试导航视图。

谢谢,

韦斯

【问题讨论】:

    标签: ios objective-c sdk facebook-ios-sdk


    【解决方案1】:

    您可以期待的结果是一个包含您需要的所有朋友数据的字典。你可以这样理解它:

    NSDictionary *resultDict = (NSDictionary *)result;
    NSArray *friendsArr = [resultDict objectForKey:@"data"];
    NSMutableArray *resultArr = [NSMutableArray array];
    for (FBGraphObject *friendObj in friendsArr) {
        NSString *name = [friendObj objectForKey:@"name"];
        NSString *imageUrl = [friendObj objectForKey:@"pic_square"];
        long long uid = [[friendObj objectForKey:@"uid"] longLongValue];
    }
    

    【讨论】:

    • 当我尝试添加它来替换 "NSLog(@"Result: %@", result);"我在“for (FBGraphObject *friendObj in friendsArr) {”处有一个断点。同样的问题。我需要在此控制器中进行任何设置吗?当我查看 FBSettings LoggingBehavior 时,我得到了带有名称、pic_square 和 uid 的响应数据,但是一旦我尝试记录它或使用 id 结果,它就会崩溃。
    • 你确定没有错误吗?尝试通过记录其类名来了解“结果”的类型。
    • 另外,检查为什么会发生崩溃 - 这是因为一个无法识别的选择器被发送到一个实例吗?您添加了调用堆栈,但没有添加实际的崩溃日志。
    • 试试这个:转到developers.facebook.com/tools/explorer?fql 并在那里尝试完全相同的查询,在您登录的同一个活动用户上。如果可以 - 为此操作提取相同的访问令牌。
    【解决方案2】:

    我通过将每个控制器和库重新添加到一个空项目中来从头开始重建我的项目。现在看来一切正常。相同的代码相同的位置。

    【讨论】:

      猜你喜欢
      • 2011-10-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多