Адресная книга iOS: имя контакта из строки

Я пытаюсь автоматически добавить контакт в адресную книгу iOS из моего приложения, где имя контакта взято из строки NSString. Я пытался выяснить это (см. Код ниже), но это не сработало. Он работает для добавления контактов с первым предоставленным мною кодом (у меня есть код сохранения и прочее), но я хотел бы добавить контакт из строки, которая может отличаться, а не просто имя, которое не может.

ABRecordRef newPerson = ABPersonCreate();
ABRecordSetValue(newPerson, kABPersonFirstNameProperty,@"Davis11", &error);
ABRecordSetValue(newPerson, kABPersonLastNameProperty, @"Scott", &error);

Я также попробовал этот код, без удачи:

ABRecordRef newPerson = ABPersonCreate();
ABRecordSetValue(newPerson, kABPersonFirstNameProperty,fName, &error);
ABRecordSetValue(newPerson, kABPersonLastNameProperty, lName, &error);

1 ответ

То, что вы делаете, это хорошо, но вы забыли позвонить ABAddressBookAddRecord а также ABAddressBookSave, Ничего не случится, пока ты не сделаешь это. То, что у вас есть, это человек, который свободно летает вокруг. Вы должны поместить этого человека в адресную книгу, если хотите, чтобы он был частью адресной книги.

Также, пожалуйста, не забудьте заняться управлением памятью. Вот полный пример (но проверка ошибок не включена в пример! Не делайте этого в реальной жизни):

CFErrorRef err = nil;
ABAddressBookRef adbk = ABAddressBookCreateWithOptions(nil, &err);
ABRecordRef snidely = ABPersonCreate();
ABRecordSetValue(snidely, kABPersonFirstNameProperty, @"Snidely", nil);
ABRecordSetValue(snidely, kABPersonLastNameProperty, @"Whiplash", nil);
ABAddressBookAddRecord(adbk, snidely, nil);
ABAddressBookSave(adbk, nil);
if (snidely) CFRelease(snidely);
if (adbk) CFRelease(adbk);
Другие вопросы по тегам