,ios,swift"/>

首页 > 解决方案 > 获取错误:“无法转换 'NSFetchRequest 类型的值' 到预期的参数类型 'NSFetchRequest'"

问题描述

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

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

我的 TableViewController 文件

 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)")
        }

 
    }

 
}

标签: iosswift

解决方案


尝试这个:

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.


推荐阅读