我使用Facebook Graph API来提取用户的朋友列表时出现性能问题。我的问题不在于检索列表,而是在检索列表后必须遍历列表以获取用户的图片。
“我/朋友”api调用只返回userId和userName。然后,我必须拿每个人的userID并打电话来获取他们的照片。这会让我的朋友的UITableView减慢很多。
有没有人有更好的解决方案来加载所有图片?
答案 0 :(得分:4)
我想,问题应该是因为您必须一次加载所有图像,这将阻止UI,直到所有图像都被下载为可见的表格单元格图像。这可以通过实施Lazy Loading
来解决。这是APPLE自己提供的示例,因此您可以检查代码并根据您的要求使用它。
如果你卡在任何地方,请告诉我。
希望这有帮助。
答案 1 :(得分:2)
首先使用FriendList API获取好友列表,然后使用Photo API获取好友的照片。
我认为,你这样做了。有一件事可能是你可以尝试使用AsynchronousImageView。在tableView中使用AsynchronousImageView以异步方式加载图像,以便在加载表视图时不会卡住它。
答案 2 :(得分:0)
要获取他们的照片,您可以使用通用网址构建它(这仅适用于图片)。不过,你只限于小型的。所以对于大的,你需要使用FQL来进行结构化查询。但这是一个不错的选择,并且可以正常工作。 FQL在语法上有点尴尬。您可以在弹出Xcode之前在图形api资源管理器中测试它。
选项:
图片网址可以构建为:
NSString * url = [[NSString alloc] initWithFormat:@“https://graph.facebook.com/%@/picture”,objectID];
FQL查询(这是常见问题)
SELECT uid,name,pic_square FROM user WHERE uid = me()或uid IN(SELECT uid2 FROM friend WHERE uid1 = me())
但老实说,为什么这样做可以使用图表来获取朋友的uid并动态构建图片 - 当然,除非你想要更大的图片。