【问题标题】:iOS 7 Addressbook and NSMutableArray with UITableView getting name and numberiOS 7 Addressbook 和 NSMutableArray 与 UITableView 获取名称和号码
【发布时间】:2014-01-18 23:37:47
【问题描述】:

我有一个 NSMutable 数组和一个 UITableview,可以从通讯录中添加数字。只需添加和删除数字就可以了。我创建了一个自定义表格单元格,其想法是同时显示联系人姓名和号码。再次,我可以在上面显示一个数字。

我不确定如何将联系人姓名也添加到 NSMutable 数组中,(我不确定它是否可能 - 来自谷歌搜索)

要选择我的联系人,我使用 Apples 开发指南 Link 中的代码 sn-p

请有人指出我正确的方向吗?示例或教程。

【问题讨论】:

  • 您将电话号码放在数组中,但无法将姓名放入数组中?
  • 是的,我有一个数组中的电话号码。我想知道是否可以将联系人姓名添加到同一个数组中,还是必须创建一个新数组/做其他事情?

标签: objective-c arrays uitableview ios7 nsmutablearray


【解决方案1】:

因为您能够获得电话号码,所以我假设您已经知道如何获得对 ABRecordRefs 的引用。要获取 ABRecordRef 的全名,您必须使用此方法:

ABRecordCopyCompositeName( recordRef );

这会返回一个 CFStringRef,可以将其 __bridgeed 到 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。

【讨论】:

    猜你喜欢
    • 2012-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多