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
FBFriendPickerDelegateを参照してください。
- (BOOL)friendPickerViewController:(FBFriendPickerViewController *)friendPicker shouldIncludeUser:(id<FBGraphUser>)user
于 2012-08-07T03:19:12.587 に答える