2012-09-18 24 views
0

我試圖從通訊錄中刪除聯繫人,然後再次添加它。 刪除是好的,但我無法添加它。沒有錯誤。 新創建的聯繫人(ABPersonCreate();)起作用。ABAddressBookAddRecord添加一次刪除聯繫人失敗

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 

該聯繫人沒有被添加!爲什麼?

+2

請看你再次發佈的代碼。這沒有意義。什麼是「測試」,我們從來沒有看到「全部人」是什麼。 – brynbodayle

+0

抱歉,複製並粘貼失敗,已修復 – Chakalaka

回答

0

嘗試以下步驟:

  • 獲取聯繫方式(即打電話時你做了什麼 「CFArrayGetValueAtIndex(allContacts,0)」)。
  • 創建一個新的聯繫人(允許其命名爲contact2),和(使用命令 「ABRecordSetValue(contact2,kABPersonFirstNameProperty,CFSTR(」 MyFirstName 「),&錯誤)」 等複製你到了新的聯繫人的詳細信息。 ..)。
  • 刪除第一個聯繫人(聯繫人)。
  • 保存地址簿。
  • 將contact2添加到地址簿。
  • 保存地址簿。

希望它能幫助。

+0

如何獲取所有屬性? kABPersonFirstNameProperty ...和用戶定義,因此contact2具有相同的細節? – Chakalaka

+0

ABRecordSetValue(contact2,kABPersonFirstNameProperty,CFSTR([聯繫valueForProperty:kABPersonFirstNameProperty]),錯誤) Propertiy列表可以在這裏找到: https://developer.apple.com/library/mac/#documentation/UserExperience/Reference/地址簿/雜項/ AddressBook_Constants /參考/#的reference.html // apple_ref/DOC/UID/TP40003952-CH3g-SW10 – MuhammadBassio