iOS 7 Addressbook 和 NSMutableArray 与 UITableView 获取名称和号码
Posted
技术标签:
【中文标题】iOS 7 Addressbook 和 NSMutableArray 与 UITableView 获取名称和号码【英文标题】:iOS 7 Addressbook and NSMutableArray with UITableView getting name and number 【发布时间】:2014-01-18 23:37:47 【问题描述】:我有一个 NSMutable 数组和一个 UITableview,可以从通讯录中添加数字。只需添加和删除数字就可以了。我创建了一个自定义表格单元格,其想法是同时显示联系人姓名和号码。再次,我可以在上面显示一个数字。
我不确定如何将联系人姓名也添加到 NSMutable 数组中,(我不确定它是否可能 - 来自谷歌搜索)
要选择我的联系人,我使用 Apples 开发指南 Link 中的代码 sn-p
请有人指出我正确的方向吗?示例或教程。
【问题讨论】:
您将电话号码放在数组中,但无法将姓名放入数组中? 是的,我有一个数组中的电话号码。我想知道是否可以将联系人姓名添加到同一个数组中,还是必须创建一个新数组/做其他事情? 【参考方案1】:因为您能够获得电话号码,所以我假设您已经知道如何获得对 ABRecordRefs 的引用。要获取 ABRecordRef 的全名,您必须使用此方法:
ABRecordCopyCompositeName( recordRef );
这会返回一个 CFStringRef,可以将其 __bridge
ed 到 NSString 以在表格视图中使用。
【讨论】:
感谢您的回复。一旦我有了名字和号码,我可以将它们都添加到我的 NSMutableArray 中吗?我想在表格的单元格中显示两者 你可以做的是有一个数组数组。喜欢@[ @[@"Full Name", @"PhoneNum"]];
【参考方案2】:
我尝试添加另一个 NSMutableArray,但在选择时遇到了“null”联系人错误。
经过一番摸索和谷歌搜索后没有可靠的答案,我编辑了一个联系人,发现我的一些联系人只有姓氏,有些只有第一个 - 我的联系人是从 android 设备和 Windows Phone 导入的。我在 Iphone 上创建的联系人运行良好。
我想出了这个代码来解决这个问题,将名字和姓氏字符串一起添加。如果一个是空的,我会添加一个空白。
NSString* firstname = (__bridge_transfer NSString*)ABRecordCopyValue(person,
kABPersonFirstNameProperty);
NSString* lastname = (__bridge_transfer NSString*)ABRecordCopyValue(person,
kABPersonLastNameProperty);
NSString* name;
if (firstname == Nil)
firstname = @"";
if (lastname == Nil)
lastname = @"";
name = [NSString stringWithFormat:@"%@ %@", firstname, lastname];
我确实希望“ABRecordCopyCompositeName”提供一个友好的名称,但对我来说仍然返回 null。
【讨论】:
以上是关于iOS 7 Addressbook 和 NSMutableArray 与 UITableView 获取名称和号码的主要内容,如果未能解决你的问题,请参考以下文章
利用AddressBook.framework框架获取iOS系统通讯录数据
IOS AddressBook Contacts真实设备上的Null问题
使用 AddressBook 框架时,iOS 11 上的应用程序崩溃?