Я пытаюсь создать пользовательскую адресную книгу на iPhone, добавляя новые записи в адресную книгу устройства (в основном, объединяя личный список контактов с устройством AB).Затем я хочу позволить пользователю выбрать контакт, который, как я думал, мог бы сделать со свойством .addressbook
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.
Спасибо!