【问题标题】:NSfetchRequest return nothingNSfetchRequest 什么都不返回
【发布时间】:2019-07-08 11:52:58
【问题描述】:

当从核心数据库中获取数据并同时更新同一实体的数据时,fetchRequest 返回 nil

let fetchRequest = NSFetchRequest<NSManagedObject>(entityName: "Abc")
        fetchRequest.predicate = NSPredicate(format: "id = %@ ", productID)

    do {
        let product = try mainContext.fetch(fetchRequest).first
        return product as? Products
    } catch _ as NSError {
        //print("Could not fetch. \(error), \(error.userInfo)")
        return nil
    }

【问题讨论】:

    标签: swift core-data nsfetchrequest


    【解决方案1】:

    实体与结果的转换类型不匹配

    要么是

    let fetchRequest = NSFetchRequest(entityName: "Abc")
    
    ...
    
    do {
        let product = try mainContext.fetch(fetchRequest).first
        return product as? Abc
    

     let fetchRequest = NSFetchRequest(entityName: "Products")
    
     do {
        let product = try mainContext.fetch(fetchRequest).first
        return product as? Products
    

    请以单数形式命名实体。从语义上讲,你投了product as? Product

    【讨论】:

    • 实体名称是 Products 而不是 ABC
    • 然后按照第二个建议。
    猜你喜欢
    • 2012-06-18
    • 2018-09-10
    • 2017-02-14
    • 2013-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多