Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 如何进行CoreData排序_Swift_Core Data - Fatal编程技术网

Swift 如何进行CoreData排序

Swift 如何进行CoreData排序,swift,core-data,Swift,Core Data,我正在用CoreData构建一个应用程序。我想按日期对CoreData数据进行排序。我已经试过了: func getData() { let request = NSFetchRequest<Session>(entityName: "Session") let sort = NSSortDescriptor(key: "date", ascending: false) request.sortDescriptors = [sort] do { sessio

我正在用CoreData构建一个应用程序。我想按日期对CoreData数据进行排序。我已经试过了:

func getData() {
  let request = NSFetchRequest<Session>(entityName: "Session")
  let sort = NSSortDescriptor(key: "date", ascending: false)
  request.sortDescriptors = [sort]

  do {
    sessions = try contains.viewContext.fetch(request)
    print("Got \(sessions.count) sessions")
    tableView.reloadData()
  } catch {
    print("Fetch failed")
  }
}
但它显示以下错误:请求使用未解析的标识符“NSFetchRequest”。

首先,您需要一个NSManagedContext,它可能类似于:

let context = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext
当然,还有一个用于返回的NSManagedObject的变量:

var sessions: [NSManagedObject] = []
然后你需要像这样使用它:

func loadQuotes() {
   let fetchRequest = NSFetchRequest<NSManagedObject>(entityName: "Session")
   let sort = NSSortDescriptor(key: "date", ascending: false)
   fetchRequest.sortDescriptors = [sort]
   do {
      sessions = try context.fetch(fetchRequest)
      } catch let error as NSError {
      print("Fetch failed")
   }
}

添加导入CoreData然后我得到一个类型为“UIFocuseEnvironment->Bool”的新失败值,该值没有成员“viewContext”包含。viewContext应该是核心数据堆栈的NSManagedObjectContext实例这意味着什么?对不起,我对编程非常陌生。这取决于核心数据堆栈的位置。