2011-10-07 135 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

相关问题