0

連絡先の配列があります。連絡先をグループに追加しようとすると、アプリケーションがクラッシュします。これが私のコードです:

for (int i = 0; i < [contactArray count]; i++)
{
    ABRecordRef newPerson =  [contactArray objectAtIndex:i];
    ABRecordSetValue(newPerson, kABPersonFirstNameProperty,name, &error);
    ABRecordSetValue(newPerson, kABPersonPhoneProperty, phone,nil);
    ABAddressBookAddRecord(iPhoneAddressBook, newPerson, &error);
    ABAddressBookSave(iPhoneAddressBook, &error);

    BOOL add = ABGroupAddMember(newGroup, newPerson, &error);
    if (add) {
        NSLog(@"added");
    }
}

私のアプリケーションはでクラッシュしますABRecordRef newPerson = [contactArray objectAtIndex:i];

配列から人のレコードを取得してグループに追加するにはどうすればよいですか?

4

2 に答える 2

0

以下のコードを使用して試してください:

CFArrayRef allPeople = ABAddressBookCopyArrayOfAllPeople(addressBookRef);

    CFIndex nPeople = ABAddressBookGetPersonCount(addressBookRef);
for (int i=0;i < nPeople;i++) {
 ABRecordRef ref = CFArrayGetValueAtIndex(allPeople,i);


        NSString *firstName, *lastName;
        ABMultiValueRef phones;
        firstName =(__bridge NSString *)(ABRecordCopyValue(ref, kABPersonFirstNameProperty));
        lastName  = (__bridge NSString *)(ABRecordCopyValue(ref, kABPersonLastNameProperty));
        phones = (ABMultiValueRef)ABRecordCopyValue(ref, kABPersonPhoneProperty);
 }
    CFRelease(allPeople);
于 2013-03-20T09:45:19.370 に答える
0

使用する:

ABRecordRef newPerson = (id)[contactArray objectAtIndex:i];

AABRecordReftypedeffor でCFTypeRefあり、それは に解決されconst void *ます。

于 2013-03-20T09:34:24.637 に答える