节目信息
嗨!我在Stackoverflow上发布的第一个问题,所以在这里: 我目前正在编写一个用于二手零件检验的程序,需要能够使用Core Data保存客户信息(或其他内容,如果建议的话)。我只需要保存它然后检索它来制作PDF。
问题
- 点击保存按钮后出现错误: - 我不知道如何检索数据并将其转换为PDF(但这完全是一个单独的问题)
错误
*2016-06-17 11:15:54.336 NewParts[6803:2846480] CoreData: error: -addPersistentStoreWithType:SQLite configuration:(null) URL:file:///var/mobile/Containers/Data/Application/1AAF2587-19C6-424F-BA3A-F37BBEE4AC71/Documents/SingleViewCoreData.sqlite options:(null) ... returned error Error Domain=NSCocoaErrorDomain Code=134100 "The managed object model version used to open the persistent store is incompatible with the one that was used to create the persistent store." UserInfo={metadata={
NSPersistenceFrameworkVersion = 641;
NSStoreModelVersionHashes = {
};
NSStoreModelVersionHashesVersion = 3;
NSStoreModelVersionIdentifiers = (
""
);
NSStoreType = SQLite;
NSStoreUUID = "F4F8EB7F-B2EB-4D7F-A2A3-45FA91F8582E";
"_NSAutoVacuumLevel" = 2;
},*
保存按钮操作
@IBAction func saveButton(sender: AnyObject)
{
var appDel: AppDelegate = (UIApplication.sharedApplication().delegate as! AppDelegate)
var context:NSManagedObjectContext = appDel.managedObjectContext
var entity1 = NSEntityDescription.insertNewObjectForEntityForName("UsedInfo", inManagedObjectContext:context) as NSManagedObject
entity1.setValue("Test", forKey: "product")
do {
try context.save()
}
catch {
print("error")
}
}
答案 0 :(得分:0)
您发布的错误实际上有解释
Code = 134100用于打开的托管对象模型版本 持久性存储与用于创建的存储不兼容 持久性商店
如果您的应用未在AppStore上发布,您只需从设备(或模拟器)中删除应用,清洁项目并执行构建和运行。
每当您更改Core Data定义时,都应删除该应用并重建。
如果您的应用程序在AppStore上,您应该执行Core Data迁移,您可以在Internet上找到大量信息。
Apple Core Data Model Versioning and Data Migration,解释了如何执行自动轻量级迁移:
您可以使用这些选项请求自动轻量级迁移 你传入的字典 addPersistentStoreWithType:configuration:URL:options:error:,by 设置对应于两者的值 NSMigratePersistentStoresAutomaticallyOption和 NSInferMappingModelAutomaticallyOption键为YES:
这意味着您可以将以下选项传递给持久协调器:
let options = [NSMigratePersistentStoresAutomaticallyOption: true, NSInferMappingModelAutomaticallyOption: true]
coordinator.addPersistentStoreWithType(NSSQLiteStoreType,configuration: nil,URL : storeURL, options as! [NSObject : AnyObject])