使用包含大量问题的xcode项目以及大量未使用/错误的遗留代码 - 我们最近决定开始一个新项目并从那里开始构建。一切都好得多,但我遇到了核心数据迁移问题。
这个模型的绝大多数是相同的,有一些调整 - 模型只包含6个对象,而且我只关心获取用户保存的内容,因此当我们发布它并升级数据时在那儿。我在新项目中基本上从零开始创建了新模型,所以我猜测应用程序试图根据ID或不匹配的东西访问特定模型?
有没有人对潜在的解决方案有任何想法?
应用程序在以下断言中崩溃:
NSPersistentStore *persistentStore = [managedObjectStore addSQLitePersistentStoreAtPath:storePath fromSeedDatabaseAtPath:nil withConfiguration:nil options:options error:&error];
NSAssert(persistentStore, @"Failed to add persistent store with error: %@", error);
现有应用程序目前是原版ModelA的第二个版本,而新应用程序在第一个版本上只有一个新的ModelA。我猜这可能与它有关吗?
答案 0 :(得分:0)
我打算发表评论,但我的回答太长了......
首先是一个愚蠢的问题......我写这篇文章从未使用过RestKit ......
问题一 - 是否值得在新项目中检查RestKit所需的构建设置?
问题二 - 您不应该在方法中包含fromSeedDatabaseAtPath
的值吗?
在对问题一做出令人满意的回应之前,试试这个......
第一;在Xcode中关闭您的新项目。打开Finder窗口,使用Finder将旧项目中的旧.xcdatamodeld文件复制到新项目目录/文件夹中,并在必要时重命名文件名。
第二;打开Xcode,在新项目中,选择File菜单中的'Add Files to Project ...'选项,然后按照提示将旧的.xcdatamodeld文件添加到项目中。
第三;在您的代码中,创建一个NSString
来表示旧.xcdatamodeld
文件的路径,并在方法fromSeedDatabaseAtPath:
的{{1}}之后的代码行中包含该文件。
这有帮助吗?
答案 1 :(得分:0)
我最终做了自己的重量级迁移。我将旧数据模型添加到新项目中,并将旧对象一次性迁移到新对象,并将它们存储在新数据库中。