我正在尝试重新创建由Apple制作的有缺陷的CNContactPickerViewController,因此我有一个数据[CNContact]
数组,我需要在UITableView中整齐地显示。这一切都很有效,直到我尝试根据联系人姓氏的第一个字母添加部分到该表。我找到的唯一解决方案是遍历[CNContact]
数组并根据其首字母手动将每个联系人分组到字典中,从而生成[String:[CNContact]]
。有更好的方法吗?
答案 0 :(得分:0)
这将按姓氏对联系人排序。可能有点矫枉过正,因为您希望它们仅按姓氏的第一个字母分组,而这将使用整个名称进行排序。
var contacts :[CNContact] = [CNContact]();
// fill your contacts here
contacts.sortInPlace { (contact1, contact2) -> Bool in
contact1.familyName.compare(contact2.familyName) == .OrderedAscending
}
不确定您是否需要原始订购。如果您想要原始数组,请创建旧数组的副本,并为副本进行排序。