【问题标题】:Address Book iOS : Contact name from string地址簿 iOS:来自字符串的联系人姓名
【发布时间】:2014-03-11 17:46:00
【问题描述】:

我正在尝试从我的应用程序自动将联系人添加到 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);

【问题讨论】:

  • 如果它不适用于fNamelName,那么您可能没有正确设置fNamelName。显示整个代码,包括执行该操作的代码。

标签: ios objective-c addressbook abaddressbooksource


【解决方案1】:

你正在做的很好,但你忘记打电话给ABAddressBookAddRecordABAddressBookSave。除非你这样做,否则什么都不会发生。你所拥有的是一个四处游荡的人。如果您希望该人成为通讯录的一部分,则必须将其放入通讯录中。

另外,请记住进行内存管理。这是一个完整的示例(但示例中省略了错误检查!在现实生活中不要这样做):

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);

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2017-03-28
  • 1970-01-01
  • 2016-05-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-13
相关资源
最近更新 更多