2011-10-07 130 views
0

我可以使用ABAddressBookRef創建新聯繫人。使用數據庫中的某些值自動更新特定聯繫人是否可行?iPhone SDK更新電話簿中的現有聯繫人

謝謝

+0

地址簿不會感覺到你的數據庫已經更新。你需要編寫代碼。你有數據庫嗎?你有更新它的代碼也可以更新地址簿嗎?如果地址簿在您的應用程序之外更新(可能),我如何更新您的db – bryanmac

+0

感謝您的評論。我有一個sqlite數據庫,我存儲了一些用戶信息。我只想更新與數據庫信息的特定聯繫人。我正在使用代碼ABAddressBookRef addressBook = ABAddressBookCreate();創建新的聯繫人。 iPhone SDK中是否有這樣的方法來更新特定的聯繫人? – Matt

回答

0

是的,您可以更新地址簿中的特定記錄。爲此,您需要知道該人的recordID並將其傳遞給以下人員,您將獲得現有人員的記錄。然後設置屬性的值。如果您想更改任何值,請先刪除,然後設置新值。對於用戶的recordID,如果您將該用戶的記錄存儲在同一個應用程序中,那麼此時您可以將這些ID保存在一個數組中。在我的應用程序中,我在tableview中顯示地址簿記錄,所以在讀取它們時我將它們的recordIds存儲在一個數組中。您可以參考下面的代碼:

ABAddressBookRef ab = ABAddressBookCreate(); 
ABRecordRef newPerson = ABAddressBookGetPersonWithRecordID(ab, id); 
if(newPerson != NULL){ 
    if(![firstName.text isEqual:firstname]){ 
     ABRecordRemoveValue(newPerson, kABPersonFirstNameProperty,nil); 
     ABRecordSetValue(newPerson, kABPersonFirstNameProperty,  firstName.text,nil); 
    } 
    } 
ABAddressBookSave(ab,nil); 
+0

非常感謝 – Matt

相關問題