使用CoreData从TextFields

时间:2016-06-17 16:23:34

标签: ios xcode swift sqlite core-data

节目信息

嗨!我在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")
    }


}

1 个答案:

答案 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])