我想通過向設備地址簿添加新記錄(基本上是將私人聯繫人列表與設備AB合併)來在iPhone上創建定製地址簿。那麼我想,讓用戶選擇一個聯繫人,我以爲我可以用ABPeoplePickerNavigationController
的.addressbook
物業辦:在iPhone上爲ABPeoplePickerNavigationController定製地址簿
ABAddressBookRef contacts = ABAddressBookCreate();
for (PrivateUserType *user in rosterItems)
{
CFErrorRef err = NULL;
ABRecordRef ref = ABPersonCreate();
ABRecordSetValue(ref, kABPersonLastNameProperty, (CFStringRef)user.lastName, &err);
if (err != NULL)
{
NSString *errorStr = [(NSString *)CFErrorCopyDescription(err) autorelease];
NSLog(@"Can not set name: %@", errorStr);
}
...
ABAddressBookAddRecord(contacts, ref, &err);
if (err != NULL)
{
NSString *errorStr = [(NSString *)CFErrorCopyDescription(err) autorelease];
NSLog(@"Error adding XMPP roster user to addressbook: %@", errorStr);
}
}
ABPeoplePickerNavigationController *picker = [[ABPeoplePickerNavigationController alloc] init];
picker.addressBook = contacts;
[viewController presentModalViewController:picker animated:YES];
[picker release];
的條目成功添加到地址簿(其中,如果我做了一個ABAddressBookSave()
後,我可以驗證循環添加一切)。但是,條目不會被picker
顯示(除非我保存聯繫人,這當然會將所有更改保存到設備地址簿中)。
有沒有辦法做到這一點?這是在iOS 4.3.1上。
謝謝!
感謝您的回答。我幾乎認爲是這種情況,但希望有其他事情。呃,好吧。謝謝.. – 2011-04-13 21:26:07