0

私がやろうとしているのは、すべての連絡先を取得し、連絡先にSocialProfilePropertyがあるかどうかに依存することです。SocialProfilePropertyを持つすべての連絡先を取得した後、Facebook、Twitter、..であるかどうかを知るために簡単なフィルタリングを行います。

この質問を投稿する前に、私はこの問題の解決策を見つけようと一日中西に行きますか?

しかし、それは0を返すことを許可しますか?

ABAddressBookRef addressBook;
CFErrorRef *erer = NULL;
addressBook = ABAddressBookCreateWithOptions(NULL, erer);
CFArrayRef _allPeople = ABAddressBookCopyArrayOfAllPeople(addressBook);
CFIndex _nPeople = ABAddressBookGetPersonCount(addressBook);
NSMutableArray *socialArray = [[NSMutableArray alloc] init];
ABMultiValueRef socialProfiles;
for (int i=0;i<_nPeople; i++) {
    ABRecordRef _person=CFArrayGetValueAtIndex( _allPeople,i);
    NSNumber *recordId = [NSNumber numberWithInteger:ABRecordGetRecordID(_person)];
    NSLog(@"%@",recordId);
    socialProfiles = ABRecordCopyValue(_person, kABPersonSocialProfileProperty);
    if (ABMultiValueGetCount(socialProfiles)>0) {
        [socialArray addObject:(__bridge id)(socialProfiles)];
    }
}
NSLog(@"%d",socialArray.count);
4

1 に答える 1

0

ユーザーがソーシャルコンタクトをネイティブとマージするまで、0を返すことができます。

たとえば、Facebookアカウントを削除しようとするまでは発生しませんでした。その場合、アラートが表示されます。

連絡先をマージしたいかどうか尋ねます??? それ以外の場合は0の値を返します:)

したがって、この方法は、ユーザーがFaceBookの連絡先をネイティブの連絡先とマージするまで機能しません。

于 2013-02-06T15:46:46.633 に答える