0

我有一个FBFriendsPicker允许用户选择朋友,然后该选择存储到我自己的数组中,但我想让用户看到他friendspicker再次输入后选择了哪些朋友。现在,每次用户按确定取消时,朋友姓名旁边的V标志都会消失,因此每次从头开始选择。

这是我到目前为止所拥有的:

selectedFriends是数组。正如你所看到的,我试图做一个 if 语句,如果用户选择了朋友,那么每次他都会向用户展示他选择的内容,friendsPicker 但这friendPicker.selection是一个只读属性,所以我不能将我的数组分配给它,我得到一个警告。

if (FBSession.activeSession.isOpen) {
        FBFriendPickerViewController *friendPicker = [[FBFriendPickerViewController alloc] init];
        friendPicker.delegate = self;
        if ([selectedFriends count] > 0 )
        {
            friendPicker.selection = selectedFriends; //<--- NOT ASSIGNABLE
        }



        ABAddressBookRef addressBook = ABAddressBookCreateWithOptions(nil, nil);
        ABPersonSortOrdering sortOrdering = ABPersonGetSortOrdering();
        ABPersonCompositeNameFormat nameFormat = ABPersonGetCompositeNameFormat();

        friendPicker.sortOrdering = (sortOrdering == kABPersonSortByFirstName) ? FBFriendSortByFirstName : FBFriendSortByLastName;
        friendPicker.displayOrdering = (nameFormat == kABPersonCompositeNameFormatFirstNameFirst) ? FBFriendDisplayByFirstName : FBFriendDisplayByLastName;

        [friendPicker loadData];
        [friendPicker presentModallyFromViewController:self
                                              animated:YES
                                               handler:^(FBViewController *sender, BOOL donePressed) {
                                                   if (donePressed) {
                                                       selectedFriends = friendPicker.selection;
                                                       //   [self updateSelections];
                                                   }
                                               }];
        CFRelease(addressBook);
4

1 回答 1

0

如果您调试代码,FBFriendPickerViewController您会发现selection定义为只读的属性NSArray实际上是一个NSMutableArray.

所以你可以做的是这样的:

NSMutableArray *selection = (NSMutableArray *) fbFriendPickerController.selection;

[selection removeAllObjects];

for (FBGraphObject *user in selectedFriends) {

    [selection addObject:user];
}
于 2013-08-14T13:32:00.817 回答