我想使用FBFriendsPickerViewController提供有限的朋友列表(例如,由特定 FQL 生成) 。文档提示可以使用FBCacheDescriptor预取好友列表,但后者的文档很差。我在 SDK 示例中没有找到任何示例。
问问题
2965 次
2 回答
3
据我了解,FBCacheDescriptor 是用来预取你需要的数据,提高表视图的响应能力。例如,如果您想缓存好友选择器列表,您可以执行类似...
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions: (NSDictionary *)launchOptions {
if (FBSession.activeSession.state == FBSessionStateCreatedTokenLoaded) {
[FBSession sessionOpen];
FBCacheDescriptor *cacheDescriptor = [FBFriendPickerViewController cacheDescriptor];
[cacheDescriptor prefetchAndCacheForSession:FBSession.activeSession];
}
return YES;
}
Facebook 提供的 Scrumptious 演示应用程序有一个很好的例子。
您可以使用新的 API 执行 FQL,但就像我说的那样,将它与缓存绑定在任何地方都没有记录。以下是使用新 SDK 运行 FQL 的方法...
- (void)getFacebookFriends {
NSMutableDictionary * params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
@"Your FQL Query goes here", @"query",
nil];
FBRequestConnection *connection = [FBRequestConnection new];
FBRequestHandler handler =
^(FBRequestConnection *connection, id result, NSError *error) {
........
//Process the result or the error
NSLog(@"%@", result);
};
FBRequest *request = [[FBRequest alloc] initWithSession:FBSession.activeSession
restMethod:@"fql.query"
parameters:[params mutableCopy]
HTTPMethod:HTTP_GET];
[connection addRequest:request completionHandler:handler];
[self.requestConnection cancel];
self.requestConnection = connection;
[connection start];
}
于 2012-07-23T03:32:54.770 回答
2
- (BOOL)friendPickerViewController:(FBFriendPickerViewController *)friendPicker shouldIncludeUser:(id<FBGraphUser>)user
于 2012-08-07T03:19:12.587 回答