我想从核心数据中按升序获取对象。问题是,我希望对象为
Abc ,abc Ball, ball bat, Cat, can
但是,它发送的是
Abc,Ball,Cat ,abc, ball, cat
以下是我的代码。
class func CD_FetchAllContacts()->[RecentContact]{
var arrResult:[RecentContact] = []
let managedContext = PM.instance().managedObjectContext
let fetchRequest = NSFetchRequest<NSFetchRequestResult>(entityName: "RecentContact")
fetchRequest.sortDescriptors = [NSSortDescriptor(key: "firstName", ascending: true, selector: #selector(NSString.caseInsensitiveCompare))]
do {
let results =
try managedContext?.fetch(fetchRequest)
arrResult = results as! [RecentContact]
} catch let error as NSError {
print("Could not fetch \(error), \(error.userInfo)")
}
print(arrResult.count)
return arrResult
}
答案 0 :(得分:0)
排序描述符应该像这样,(_ :)
结尾:
fetchRequest.sortDescriptors = [NSSortDescriptor(key: "firstName", ascending: true, selector: #selector(NSString.caseInsensitiveCompare(_:)))]
编辑:实际上,即使使用您的排序描述符版本,它也可以在我完成的测试项目中运行。发布的代码似乎没有错。您是否在代码的其他部分对返回的数组进行排序?