Я хотел бы представить ограниченный список друзей (например, сгенерированный определенным FQL), используя FBFriendsPickerViewController. В документации указано, что список друзей может быть предварительно загружен с помощью FBCacheDescriptor., но документация последнего оставляет желать лучшего. Я не нашел ни одного примера в образцах SDK.
iOS SDK 3.0 — FBFriendPickerViewController с FBCacheDescriptor — ограниченный список друзей
Ответы (2)
См. FBFriendPickerDelegate а>:
- (BOOL)friendPickerViewController:(FBFriendPickerViewController *)friendPicker shouldIncludeUser:(id<FBGraphUser>)user
person
Josh Benjamin
schedule
07.08.2012
Кажется, это работает. Мне нужно вести список отфильтрованных друзей (используя пример директивы fql), а затем сравнивать их при каждом обратном вызове. Не изящно, но работает. Спасибо.
- person Tal Yaniv; 08.08.2012
Насколько я понимаю, 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;
}
Есть хороший пример демонстрационного приложения Scrumptious, предоставленного Facebook.
Вы можете выполнить FQL, используя новый API, но, как я уже сказал, связывание этого с Cache нигде не задокументировано. Вот как вы можете запустить FQL с помощью нового SDK...
- (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];
}
person
Suneth Mendis
schedule
23.07.2012
Спасибо, Шатодфлесс. Но все же я не знаю, можно ли привязать FQL-ответ к FBFriendPickerViewController.
- person Tal Yaniv; 23.07.2012
Я не верю, что ты можешь. Вам нужно будет использовать API requestForGraphPath и обработать набор результатов самостоятельно, если вы пойдете по маршруту FQL, который может оказаться медленным. Могу я узнать, почему вместо этого вы хотите использовать FQL?
- person Suneth Mendis; 26.07.2012
Список всех друзей, у которых есть более 10 общих друзей: ВЫБЕРИТЕ ... И взаимный_количество_друзей › 10 ORDER BY last_name
- person Tal Yaniv; 27.07.2012