【问题标题】:Swift 4 ,CoreData: error: Failed to load model named textTabelViewSwift 4,CoreData:错误:无法加载名为 textTabelView 的模型
【发布时间】:2017-11-13 02:51:54
【问题描述】:

当我在 Xcode 9 中使用 Swift4 时

2017-11-13 10:17:15.807151+0800 textTabelView[1146:53409] [发现] 发现扩展时遇到的错误:Error Domain=PlugInKit Code=13 "query cancelled" UserInfo={NSLocalizedDescription=query cancelled} 2017-11-13 10:17:16.369075+0800 textTabelView[1146:52958] [错误] 错误:失败 加载名为 textTabelView CoreData 的模型:错误:无法加载名为 textTabelView 的模型

我的代码:

@IBAction func savaArea(_ sender: UIBarButtonItem) {

    let appDelegate = UIApplication.shared.delegate as! AppDelegate

    area = AreaMO(context: appDelegate.persistentContainer.viewContext)
    area.area = areaText.text
    area.province = provinceText.text
    area.part = partText.text
    area.isVisited = visitedLabel.text
    if let imageData = UIImageJPEGRepresentation(coverImageView.image!, 0.8){
        area.image = NSData(data: imageData) as Data
    }
    print("saving...")
    appDelegate.saveContext()

    performSegue(withIdentifier: "unwindToArea", sender: self)

}

关于CoreData的AppDelegat.swift:

// MARK: - Core Data stack

lazy var persistentContainer: NSPersistentContainer = {

    let container = NSPersistentContainer(name: "textTabelView")

    ...
}

我确定我确实正确导入了 CoreData。

项目可以正常构建,但是当我触摸按钮(@IBaction 是)时,控制台中打印了警告并且应用程序崩溃了

我该如何解决?

【问题讨论】:

  • 持久化容器中使用的名称应与 xcdatamodel 文件的名称匹配。

标签: ios core-data appdelegate swift4


【解决方案1】:

如果您的 NSPersistentContainer 参数的名称与您的 xcdatamodeld 文件的名称不匹配,您会遇到同样的错误。可能的解决方案:

  1. 仔细检查数据模型是否命名为“textTabelView.xcdatamodeld”,
  2. 如果名称因某些不可见字符而损坏,请删除旧的 xcdatamodeld 文件并创建一个新文件,或者
  3. clean build app 文件夹(⌥⇧⌘K)(即option+shift+apple+K)。

祝你好运!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-24
    • 2015-07-28
    • 2015-12-19
    • 1970-01-01
    • 2016-11-08
    相关资源
    最近更新 更多