0

因此,我的数据库模型中的类别得到了更新(之前有 4 个,现在是 7 个),我也想用新对象更新核心数据。

我试图应用这个:https ://developer.apple.com/documentation/coredata/using_lightweight_migration

    lazy var persistentStoreCoordinator: NSPersistentStoreCoordinator = {
    // The persistent store coordinator for the application. This implementation creates and returns a coordinator, having added the store for the application to it. This property is optional since there are legitimate error conditions that could cause the creation of the store to fail.
    // Create the coordinator and store
    let coordinator = NSPersistentStoreCoordinator(managedObjectModel: self.managedObjectModel)
    let url = self.applicationDocumentsDirectory.appendingPathComponent("x.sqlite")
    let options = [NSMigratePersistentStoresAutomaticallyOption: true, NSInferMappingModelAutomaticallyOption: true]
    var failureReason = "There was an error creating or loading the application's saved data."
    do {
        try coordinator.addPersistentStore(ofType: NSSQLiteStoreType, configurationName: nil, at: url, options: options)
    } catch {
        // Report any error we got.}

但我的数据是一样的......它没有更新新的类别。有什么帮助吗?谢谢.. PS:我应该制作一个新模型并将旧模型映射到新模型吗?在此处输入图像描述

4

2 回答 2

1

您只是忘记添加另一个模型,如果您只有一个模型,则无法在模型之间进行迁移。所以只需选择您的 xcdatamodel 然后打开 Editor -> add Model Version 然后转到 File Inspector 并选择新的 xcdatamodel 作为当前,然后你得到结果。祝你好运亲爱的朋友

于 2018-08-27T18:39:16.643 回答
0

您需要创建 CORE DATABASE 的 DB 模型版本。您可以按照创建数据库版本控制的步骤进行操作。

于 2018-08-27T18:52:17.427 回答