无法将字符串保存到CoreData中

时间:2018-06-28 21:22:50

标签: swift core-data xcdatamodel

我正在尝试将字符串数组中的字符串保存到Core Data中。我的.xcdatamodel看起来像这样:

.xcdatamodel

我的保存功能(称为“内存”的类的方法):

func save(from: [String])
    {
        for i in 0..<from.count
        {
            let appDelegate = UIApplication.shared.delegate as! AppDelegate
            let context = appDelegate.persistentContainer.viewContext

            let saved = NSEntityDescription.insertNewObject(forEntityName: "Person", into: context)

            saved.setValue(from[i], forKey: "password")

            do
            {
                try context.save()
                print("SAVED")
            }

            catch
            {
                print("ERROR - COULDN'T SAVE ", to)
            }
        }

        print("NEW ", to, ": ")
        print(save)
    }

最后,在我的ViewController中:

Memory().save(from: codes)

但是,我得到的是:

  

线程1:致命错误:未解决的错误错误   Domain = NSCocoaErrorDomain代码= 134140“持久存储迁移   失败,缺少映射模型。”   UserInfo = {sourceModel =()isEditable   1,实体{

     

Person =“()名称Person,   ManagedObjectClassName NSManagedObject,renamingIdentifier Person,   isAbstract 0,超级实体名称(空),属性{\ n password =   \“(),名称密码,是可选的   1,isTransient 0,实体

1 个答案:

答案 0 :(得分:0)

您已经对数据模型进行了更改,但是失败/忘记了迁移模型。如果您当前的持久性存储(SQLite数据库?)中没有任何有价值的东西,那么我建议您将其丢弃,然后让Core Data使用新模型创建新的持久性存储。

否则,如果您拥有模型并进行适当的迁移,则可能要从源存储库中获取模型的先前版本。这是一个有趣的SO questionApple's documentation on migration