获取时出错:“无法转换类型'NSFetchRequest的值 '到预期的参数类型'NSFetchRequest “”

问题描述 投票:0回答:2

使用此函数在表视图中对单元格进行排序。我在获取请求中收到错误。 do循环内部的行notes = try context.fetch(request)导致错误,请求带有下划线

错误显示“无法将类型'NSFetchRequest'的值转换为预期的参数类型'NSFetchRequest'”

My TableViewController file

 import UIKit
import CoreData


class noteTableViewController: UITableViewController {

    var notes = [Note]()

    var managedObjectContext: NSManagedObjectContext? {

        return (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext

    }


    func loadDataFromDatabase() {

        let settings = UserDefaults.standard

        let sortPriority = settings.string(forKey: Constants.kPriority)

        let context = appDelegate.persistentContainer.viewContext

        let request = NSFetchRequest<NSManagedObject>(entityName: "Note")

        let sortDescriptor = NSSortDescriptor(key: sortPriority)

        let sortDescriptorsArray = [sortDescriptor]

        request.sortDescriptors = sortDescriptorsArray

        do {

            notes = try context.fetch(request)
        } catch let errer as NSError {

            print("Could not fetch. \(error), \(error.userInfo)")
        }


    }


}

ios swift
2个回答
0
投票

试试这个:

func loadDataFromDatabase() {
  ...

  let request = NSFetchRequest<NSFetchRequestResult>(entityName: "Note")

  ...

  do {
    notes = try context.fetch(request) as? [Note] ?? []
  } catch let errer as NSError {
    print("Could not fetch. \(error), \(error.userInfo)")
  }
}

当然,我假设你的Note类是NSManagerObject的子类。


0
投票

您需要将其转换为Notes数组

  do {
    notes = try context.fetch(request) as? [Note] ?? []
  } catch let errer as NSError {
    print("Could not fetch. \(error), \(error.userInfo)")
  }
© www.soinside.com 2019 - 2024. All rights reserved.