4

FBFriendPickerViewController は非常に簡単に見えます。ただし、希望するシナリオ向けに設計されていない可能性があります。

基本的に、ユーザーが選択した友人のリストをディスクに保存したいと考えています。その後のアプリの起動時に、これらの「保存された」友達が既に選択されているものとして FBFriendPickerViewController を表示したいと思います。

.selection 属性は読み取り専用であるため、既に「選択済み」の友人のサブセットを使用して FBFriendPickerViewController の新しいインスタンスをロードする方法がわかりません。

4

1 に答える 1

1

最後に、解決策を見つけました。

dictキーがfacebookユーザーIDで、値が名前であるNSDictionaryがあります。大まかに、これはコードです:

NSMutableArray *results = [[NSMutableArray alloc] init];
for (id key in dict) {
  NSString *name = [dict valueForKey:key];
  id<FBGraphUser> user = (id<FBGraphUser>)[FBGraphObject graphObject];
  user.id = key;
  [user setName:name]; // This is not mandatory
  if (user) {
    NSLog(@"adding user: %@", user.name);
    [results addObject:user];
  }
}
// And finally set the selection property
friendPickerController.selection = results;

更新:正しく動作しないようです.... 友達が正しくチェックされているのがわかりますが.selection、選択を終了したときに解析すると、UI でチェックした友達だけが取得されます。プリロードされたもの...

更新 2: FBGraphUser.hヘッダー ファイルにリストされているすべてのフィールドを入力すると、正常に動作するようです。

于 2014-04-27T17:44:18.810 に答える