• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ios - 为了在后续版本中使用轻量级迁移,我必须在我的第一个版本中启用版本控制吗?

[复制链接]
菜鸟教程小白 发表于 2022-12-13 07:42:55 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我担心的是后续版本中数据模型的变化。

我在 Xcode 中创建了一个新的 xcdatamodel 文件,默认情况下没有版本控制。我知道您可以单击某处并将其设为“第一个版本”。在 Groups and Files 树中,xcdatamodel 文件的左侧有一个黑色粗箭头,您可以单击该箭头查看其中的所有版本。

我的文件没有那个粗箭头,所以没有版本化。

这会在以后引起大问题吗?是否需要从一开始就对其进行版本控制,以便以后进行轻量级迁移?一旦应用交付给用户,就无法再更改。



Best Answer-推荐答案


您无需在第一个版本中设置轻量级迁移。当您决定迁移时,您需要做两件事。首先,您必须保留数据模型的每个版本的副本。这些模型通常保存在 .xcdatamodeld 文件中。或者,您可以只保留一堆 .xcdatamodel 文件。但是,最好使用 .xcdatamodeld 文件来保持一切井井有条。其次,您必须使用持久存储协调器激活轻量级迁移。创建持久存储协调器时,您将执行以下操作:

__persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:[self managedObjectModel]];

// Automatically migrates the model when there are small changes.
NSDictionary * options = [NSDictionary dictionaryWithObjectsAndKeys:
                          [NSNumber numberWithBool:YES], NSMigratePersistentStoresAutomaticallyOption,
                          [NSNumber numberWithBool:YES], NSInferMappingModelAutomaticallyOption, 
                          nil];
[__persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType 
                                           configuration:nil 
                                                     URL:storeURL 
                                                 optionsptions 
                                                   error:&error];

请记住,轻量级迁移只能做这么多。如果您需要进行较大的更改,那么您将需要创建一个映射模型。

关于ios - 为了在后续版本中使用轻量级迁移,我必须在我的第一个版本中启用版本控制吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6029703/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap