【发布时间】:2018-03-15 12:38:11
【问题描述】:
我正在使用以下代码将联系人数组排列在部分中(例如,前缀为“A”的联系人应显示在“A”部分下)。如果有 4-5 百个联系人,则处理需要 20 秒。
你能检查一下这里有什么问题吗?或任何替代品。
let finalArr = NSMutableArray()
for contactDetail in conatctsArr {
let name = (contactDetail as! Dictionary)["givenName"] ?? ""// Getting First character of name
var key = String()
if name.characters.count > 0 {
let index1 = name.index((name.startIndex), offsetBy: 1)
key = name.substring(to: index1)
}
else {
key = ""
}
// getting all contatcts starting with particular character
let predicate=NSPredicate(format: "SELF.givenName beginswith[c] %@",key)
let filteredArr = (conatctsArr as NSArray).filtered(using: predicate)
var dic = Dictionary<String, Any>()
dic["key"] = key
dic["values"] = filteredArr
if filteredArr.count > 0 && !(finalArr.contains(dic)) {
finalArr.add(dic)
}
}
【问题讨论】:
标签: ios swift xcode performance memory