2011-10-14 40 views
0

我試圖對地址簿中的所有號碼進行統一更改,我想將我的國家代碼(+46)添加到以0開頭的所有號碼,並認爲我' d爲此做一個應用程序。問題是如何以最好的方式做到這一點,似乎很難。更改地址簿/聯繫人中的所有號碼

通常的方法似乎是通過人員選取器:http://developer.apple.com/library/ios/#documentation/ContactData/Conceptual/AddressBookProgrammingGuideforiPhone/Chapters/UI_Controllers.html#//apple_ref/doc/uid/TP40007744-CH5-SW4 - 但這意味着用戶必須選擇要更改的聯繫人,這必須是一種過度複雜的方式。

有沒有辦法讓地址簿中的所有數字循環,改變它/它,然後把它們放回去?

預先感謝您,Tobias Tovedal。

+0

把這個從-1 ...認真的人,只因爲你不喜歡這個人的任務,不投票他們...我們都有我們自己的項目和任務。 – eric

回答

6

是的,您可以遍歷所有記錄並可以編輯地址簿中的記錄。以下是這個例子以從通訊錄中的所有記錄:

 NSArray *array= (NSArray *)ABAddressBookCopyArrayOfAllPeople(addressBook); 

以下是編輯從通訊錄中特定記錄人的recordId的基礎上的代碼:

 ABAddressBookRef ab = ABAddressBookCreate(); 
    ABRecordID id = ABRecordGetRecordID(person); 
    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); 

您可以採取記錄然後更改電話號碼的值或逐個遍歷記錄。你需要小心,因爲一個人的電話號碼可以有多個電話號碼,所以你需要使用ABMultiValueRef,同時得到的電話號碼將提供一個人的所有電話號碼。

+0

如果它是爲你工作,然後接受它作爲一個答案..... – Minakshi

+0

謝謝你的回答,是的,我試圖讓它現在運作,我相信你的答案是正確的,我會回來的結果:) –

+0

大獲成功,感謝您的幫助! –

相關問題