将Facebook与iPhone应用程序集成 - 使用Graph API实现性能问题

时间:2012-01-26 00:15:56

标签: iphone facebook facebook-graph-api

我使用Facebook Graph API来提取用户的朋友列表时出现性能问题。我的问题不在于检索列表,而是在检索列表后必须遍历列表以获取用户的图片。

“我/朋友”api调用只返回userId和userName。然后,我必须拿每个人的userID并打电话来获取他们的照片。这会让我的朋友的UITableView减慢很多。

有没有人有更好的解决方案来加载所有图片?

3 个答案:

答案 0 :(得分:4)

我想,问题应该是因为您必须一次加载所有图像,这将阻止UI,直到所有图像都被下载为可见的表格单元格图像。这可以通过实施Lazy Loading来解决。这是APPLE自己提供的示例,因此您可以检查代码并根据您的要求使用它。

如果你卡在任何地方,请告诉我。

希望这有帮助。

答案 1 :(得分:2)

据我所知,你必须像你一样做你的东西。你必须使用GRAPH API来检索用户朋友的照片。

首先使用FriendList API获取好友列表,然后使用Photo API获取好友的照片。

我认为,你这样做了。有一件事可能是你可以尝试使用AsynchronousImageView。在tableView中使用AsynchronousImageView以异步方式加载图像,以便在加载表视图时不会卡住它。

答案 2 :(得分:0)

要获取他们的照片,您可以使用通用网址构建它(这仅适用于图片)。不过,你只限于小型的。所以对于大的,你需要使用FQL来进行结构化查询。但这是一个不错的选择,并且可以正常工作。 FQL在语法上有点尴尬。您可以在弹出Xcode之前在图形api资源管理器中测试它。

选项:

  1. 图片网址可以构建为:

    NSString * url = [[NSString alloc] initWithFormat:@“https://graph.facebook.com/%@/picture”,objectID];

  2. FQL查询(这是常见问题)

    SELECT uid,name,pic_square FROM user WHERE uid = me()或uid IN(SELECT uid2 FROM friend WHERE uid1 = me())

  3. 但老实说,为什么这样做可以使用图表来获取朋友的uid并动态构建图片 - 当然,除非你想要更大的图片。