0

アドレスブックから連絡先を削除して、再度追加しようとしています。削除はOKですが、追加できません。エラーなし。新しく作成された連絡先 ( ABPersonCreate(); ) が機能します。

ABAddressBookRef addressBook = ABAddressBookCreate();
CFArrayRef allContacts = ABAddressBookCopyArrayOfAllPeople(ab);
ABRecordRef contact = CFArrayGetValueAtIndex(allContacts, 0);

ABAddressBookRemoveRecord(addressBook, contact, nil);
ABAddressBookSave(addressBook, nil);

BOOL addSuccess = ABAddressBookAddRecord(addressBook, contact, &error)
// addSuccess == YES, 
// error == null

BOOL saveSuccess = ABAddressBookSave(addressBook, &error)
// saveSuccess == YES
// error == null

連絡先が追加されませんでした! なんで?

4

1 に答える 1

0

以下の手順を試してください。

  • 連絡先の詳細を取得します (つまり、" CFArrayGetValueAtIndex(allContacts, 0) "を呼び出したときに行ったこと)。
  • 新しい連絡先を作成し (名前を contact2 にします)、取得した詳細を新しい連絡先にコピーします (コマンド " ABRecordSetValue(contact2, kABPersonFirstNameProperty, CFSTR("MyFirstName"), &Error) " などを使用)。
  • 最初の連絡先(連絡先)を削除します。
  • アドレス帳を保存します。
  • contact2 をアドレス帳に追加します。
  • アドレス帳を保存します。

それが役に立てば幸い。

于 2012-09-18T13:23:24.837 に答える