gpt4 book ai didi

ios - 排序 NSManagedObject 数组

转载 作者:可可西里 更新时间:2023-11-01 00:08:41 24 4
gpt4 key购买 nike

我的项目中有一个代码应该可以工作。简单地说,我想按创建日期对请求的获取结果进行排序,如下所示:

0        context =...
1 let fetchRequest = NSFetchRequest(entityName: CoreDataValues.EntityName)
2 do {
3 let results = try context?.executeFetchRequest(fetchRequest)
4 let sortDescriptor = NSSortDescriptor(key: CoreDataValues.CreationDateKey, ascending: true)

5 if let sortedObjects = (results as? NSArray)?.sortedArrayUsingDescriptors([sortDescriptor]) as? [NSManagedObject] {
6 searchTextObjects = sortedObjects
7 tableView.reloadData()
8 }

9 } catch let error as NSError {
10 print("Could not fetch \(error), \(error.userInfo)")
11 }

但是在第 5 行我收到警告:“从 [AnyObject] 转换到不相关的类型 NSArray 总是失败”。

最佳答案

你的代码有点复杂。

推荐的方法是将排序描述符与获取请求一起传递

   context =...
let fetchRequest = NSFetchRequest(entityName: CoreDataValues.EntityName)
let sortDescriptor = NSSortDescriptor(key: CoreDataValues.CreationDateKey, ascending: true)
fetchRequest.sortDescriptors = [sortDescriptor]
do {
searchTextObjects = try context?.executeFetchRequest(fetchRequest)
tableView.reloadData()

} catch let error as NSError {
print("Could not fetch \(error), \(error.userInfo)")
}

关于您的错误:

executeFetchRequest 返回 [AnyObject] 因此您可以尽快将类型转换为正确的类型。

let results = try context.executeFetchRequest(fetchRequest) as! [NSManagedObject]

我还建议使 context 成为非可选的(就像在最新的 Core Data 模板中一样)

关于ios - 排序 NSManagedObject 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35417012/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com