从Web Service保存Core数据时出错

时间:2017-05-06 09:55:27

标签: ios core-data swift3

我正在尝试在应用程序最初启动时从Web服务中保存一堆“缺勤”(登录后无法直接在AppDelegate中执行此操作)。

我有以下代码可以找到任何现有记录并在获取新集之前删除它们。

fetch工作正常(虽然没有任何东西可以提取),因为我看到打印的行'Nothing found'。但是当我从Web服务循环结果时,我从行'NSInvalidArgumentException', reason: 'An NSManagedObject of class 'AbsenceTypes' must have a valid NSEntityDescription.'

中抛出let newAbsence = AbsenceTypes(context: context)
func getAndSaveAppointmentTypes(){


    let context = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext

    do {
        absences = try context.fetch(AbsenceTypes.fetchRequest())
    } catch {
        print("Nothing found")
    }

    if !absences.isEmpty {
        for absence in absences {
            context.delete(absence)
        }
        (UIApplication.shared.delegate as! AppDelegate).saveContext()
    }


    let paramString : String = "My Param String"

    DataFunctions().getRequest(methodName: "MyMethod", parameters: paramString) { (result) -> () in

        for item in result {

            if item["Error"] != nil {

                handleError()

                return

            } else {

                let absenceID : String = item["id"] as! String
                let absenceDesc : String = item["Description"] as! String
                let context = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext
                let newAbsence = AbsenceTypes(context: context)
                newAbsence.absenceDesc = absenceDesc
                newAbsence.absenceId = absenceID
                (UIApplication.shared.delegate as! AppDelegate).saveContext()

            }
            print("Absences saved")

        }

    }


}

到目前为止,我有:

  • 检查并重新检查数据模型中的实体名称并匹配。
  • 清理并重建了应用
  • 在全局命名空间和当前项目模块之间切换模块

0 个答案:

没有答案