我目前在一个二维数组中排序数据时遇到了大问题。接下来我会尽可能详细地向您描述情况。
目前,我正在使用CNContactStore获取我的联系人信息。这一切都很好用。我能够检索出我想要的所有联系人数据。
现在,我创建了以下结构体:
struct FavoritableContact {
let contact: CNContact
var hasFavorited: Bool
}
我声明并初始化了以下数组:
var favoritableContacts = [FavoritableContact]()
当我检索到我的联系人后,我只需将它们添加到favoritableContacts中即可。
try store.enumerateContacts(with: request, usingBlock: { (contact, stopPointerIfYouWantToStopEnumerating) in
favoritableContacts.append(FavoritableContact(contact: contact, hasFavorited: false))
})
为了将它们按字母顺序排序到同一个数组中,我只需要执行以下操作:
var sortedContacts = favoritableContacts.sorted { $0.contact.familyName < $1.contact.familyName }
现在如果可能的话,我想创建以下的二维数组:
var 2D = [
[FavoritableContact] //"A"
[FavoritableContact], //"B"
[FavoritableContact], //"C"
[FavoritableContact], //"D"
...
]
我不确定如何将我的sortedContacts数组按字母顺序分开。
我在这里很新,如果我忘了什么或者做错了什么,请告诉我。