ios - 获取错误: "Cannot convert value of type ' NSFetchRequest<NSManagedObject >' to expected argument type ' NSFetchRequest<NSFetchRequestResults >'"

标签 ios swift

使用此函数对表格 View 中的单元格进行排序。我的获取请求中出现错误。 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)")
        }

 
    }

 
}

最佳答案

试试这个:

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 的子类。

关于ios - 获取错误: "Cannot convert value of type ' NSFetchRequest<NSManagedObject >' to expected argument type ' NSFetchRequest<NSFetchRequestResults >'",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55943334/

相关文章:

objective-c - swift init 不可用。 init 不可用只能由框架内部创建

ios - 仅 iPhone 5 出现无法解释的帧速率下降

iphone - 当用户与 ios 中的 slider 交互时, ScrollView 不应滚动

ios - 没有让 Core Motion 在 UI 中显示加速度计数据

swift - 在 MapBox iOS (Swift) 上显示照片地理标签

swift - 完成处理程序

ios - 弹出到 View Controller ,如何调用要弹出到的 View Controller 中的方法?

ios - 将 CLLocationCoordinate2D 数组保存到核心数据?

ios - 关闭通知中心时调用函数

ios - 网址缓存(iOS)。 storeCachedResponse 异步工作。如何 catch 完成?