我正在尝试将字符串数组中的字符串保存到Core Data中。我的.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,实体
答案 0 :(得分:0)
您已经对数据模型进行了更改,但是失败/忘记了迁移模型。如果您当前的持久性存储(SQLite数据库?)中没有任何有价值的东西,那么我建议您将其丢弃,然后让Core Data使用新模型创建新的持久性存储。
否则,如果您拥有模型并进行适当的迁移,则可能要从源存储库中获取模型的先前版本。这是一个有趣的SO question和Apple's documentation on migration