UIManagedDocument 迁移数据模型

2024-04-23

我正在开发一个 iPhone 应用程序,它使用UIManagedDocument并将其文档存储在 iCloud 上。

一切都工作正常,直到我更改了我的核心数据模型/方案(添加了新的模型版本 - 就像我在过去几周内多次所做的那样)。 我添加了一个新属性并更改了现有属性之一的数据类型。

现在,当我运行我的应用程序时,我似乎无法加载我的文档UIManagedDocument's -openWithCompletionHandler:。 我可以创建新文档并读取/写入这些文档。 如果我将数据模型版本改回 1,那么我可以读取现有文档,但不能读取新文档。

据我了解,我只是对数据模型进行轻量级迁移,UIManagedDocument应该处理这个问题吗?

任何建议将不胜感激!


以下是基于我的理解:

注意 - 我还没有在 iCloud 上尝试过,但我已经在非 icloud 上测试过它,看起来没问题。

UIManagedDocument配置managedObjectModel和一个持久存储协调器本身

当需要迁移时,只需设置UIManagedDocument's persistentStoreOptions

//Note - In this example, managedDocument is a UIManagedDocument property

self.managedDocument.persistentStoreOptions = [NSDictionary dictionaryWithObjectsAndKeys:
                                        [NSNumber numberWithBool:YES], NSMigratePersistentStoresAutomaticallyOption,
                                        [NSNumber numberWithBool:YES], NSInferMappingModelAutomaticallyOption, nil];

Refer:

  • Apple 关于核心数据版本控制的文档 https://developer.apple.com/library/ios/#documentation/Cocoa/Conceptual/CoreDataVersioning/Articles/Introduction.html
  • 使用 NSPersistentStoreCoordinator 的要点是什么? https://stackoverflow.com/questions/10729255/point-of-using-nspersistentstorecoordinator
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

UIManagedDocument 迁移数据模型 的相关文章

  • Ruby on Rails:如何使用迁移向现有列添加非空约束?

    在我的 Rails 3 2 应用程序中 我的数据库中有一堆表 但我忘记添加一些非空约束 如何编写将 not null 添加到现有列的迁移 您还可以使用更改列空 http api rubyonrails org classes ActiveR
  • 与 NSPersistentCloudKitContainer 的关系持久化

    我正在开发一个使用的应用程序NSPersistentCloudKitContainer在设备之间共享数据 核心数据模型具有多个实体 其中两个实体使用与其各自相反的关系进行连接 我遇到的问题是 当我将关系设置为nil云数据未更新 当我重新启动
  • 如何在 Core Data 上下文之外使用 Core Data 模型子类?

    我正在尝试在 Swift 中制作一个天气应用程序 它将保存我添加到核心数据的城市 每个城市都包含一个天气对象 该对象也保存到核心数据和其他各种变量 但我很快就发现 在 Core Data 上下文之外使用 Core Data NSManage
  • 复杂对象上的自定义 NSSortDescriptor

    这是我的第一篇文章 如果我可能不尊重所有惯例 我很抱歉 尽管我会尽力而为 我以前总是在 SO 上找到解决我的问题的方法 但我完全陷入了一个相当复杂的可可问题 我正在尝试对 CoreData 对象列表进行复杂的排序 我有一个由 Book 对象
  • existingObjectWithID 与 NPrivateQueueConcurrencyType 发生死锁

    我遇到了冻结 死锁 NSPrivateQueueConcurrencyType并发类型而不是NSMainQueueConcurrencyType 我的上下文初始化 managedObjectContext NSManagedObjectCo
  • 将 php4/mysql4 迁移到 php5/mysql5:预期的 php 问题?

    我有一个遗留的Web应用程序php4 mysql4 MyISAM 数据库包含一些cms 一些用户数据 一些日历应用程序 现在我要迁移到带有 php5 mysql5 的新服务器 在这种迁移场景中 典型的 php 问题是什么 php sql 查
  • UIManagedDocument 迁移数据模型

    我正在开发一个 iPhone 应用程序 它使用UIManagedDocument并将其文档存储在 iCloud 上 一切都工作正常 直到我更改了我的核心数据模型 方案 添加了新的模型版本 就像我在过去几周内多次所做的那样 我添加了一个新属性
  • NSFetchedResultsController 在 VIPER 架构中的位置是什么?

    In VIPER https www objc io issues 13 architecture viper 与MVC不同的是 NSFetchedResultsController的角色和地点没有那么明确的定义 把它放在交互器上合适吗 根
  • 定义 Rails 迁移中的方法

    我试图在迁移中定义一个方法 但出现未定义的方法错误 undefined method do something specific for
  • 应用因 iCloud 备份标记而被拒绝

    我的应用程序有一些应用内购买 可将视频内容下载到 Documents 文件夹 我最近提交了应用程序的更新 但被拒绝了 因为我没有将视频文件标记为不备份到 iCloud 我成功地实现了标记 但我仍然对苹果文档中的这一声明感到困惑 重要 新的
  • 循环核心数据 NSSet 的正确语法

    每当我循环遍历核心数据关系 NSSet 时 我必须将集合转换为数组 for student in classroom students allObjects as Student print student name 或者我可以正常循环遍历
  • 使用新数据快速更新 UITableView

    我正在尝试重新填充我的UITableView来自另一个 JSON 调用的数据 然而 我当前的设置似乎不起作用 虽然有很多相同的问题 但我可以找到我已经尝试过的答案 我将 API 数据保存在CoreData实体对象 我用我的 UITableV
  • CoreData 多对多添加错误

    不确定我在这里做错了什么 School has a to many to Student and Student has its inverse 一点测试代码如下 class Student interface School NSManag
  • 今天 iCloud + Core Data(2015 年 7 月 10 日)

    几年前 Apple 发布了 Core Data 应用程序的 iCloud 同步 然后我发布了一个适用于 iPad iPhone MAC 的应用程序 其共享模型使用新的 Apple 机制 事情并没有按预期进行 同步机制有时不起作用 例如 就我
  • 构建复杂 NSCompoundPredicate 的最佳方法是什么?

    我需要建立一个NSPredicate有很多数据 例如 在 SQL 中我会执行如下操作 SELECT FROM TRANSACTIONS WHERE CATEGORY IN categoryList AND LOCATION IN locat
  • 跳过痛苦的 Core Data 迁移并迁移到新的数据模型

    当我什至不关心旧数据时 我花费了大量时间将核心数据整理到新的迁移中 有没有一种方法可以删除所有现有数据并跳转到新的数据模型 而不是每次更改数据模型时都处理映射模型的麻烦 是的 只需删除商店文件并重新创建即可 我经常 至少在开发过程中 让我的
  • 迁移范围的独特性

    我一直在尝试找到一种方法来实现这一目标 但我找不到任何尝试 即使如此 我想也许我的方法是完全错误的 也就是说 我应该做什么移民如果我希望两个字段的组合是唯一的 请注意 我不希望它们成为索引 而只是数据库字段 例如 对于下面的迁移 我可以单独
  • 如何按日期正确对从 CoreData 获取的列表进行分组?

    为了简单起见 假设我想创建一个简单的待办事项应用程序 我的 xcdatamodeld 中有一个实体 Todo 其属性id title and date 以及以下 swiftui 视图 如图所示的示例 import SwiftUI struc
  • 在 iOS 应用程序中处理数据(选择什么?NSData、CoreData、sqlite、PList、NSUserDefaults)

    当我开发 iPhone 应用程序 时间跟踪器 待办事项列表等 时 我永远不知道处理数据的最佳方式是什么 有一次我使用了 plist 下次使用 sqlite 或 CoreData 您如何决定什么最适合您的项目 只谈数据管理 例如 如果您想开发
  • Swift 2.0 中的 countForFetchRequest

    我正在尝试使用countForFetchRequestSwift 2 0 中托管对象上下文上的方法 我注意到错误处理executeFetchRequest已更改为新的do try catch syntax func executeFetch

随机推荐

  • 通过 ServiceStack api 使用 Linq2Twitter 和缓存的 OAuth 令牌

    我想使用 Linq2Twitter 从 ServiceStack 编写的 REST API 中进行 Twitter API 调用 我有以下信息 消费者钥匙 消费者秘密 当用户在网站上验证我们的应用程序时缓存的 OAuth 令牌 当用户在网站
  • 使用 F# 进行循环与递归

    这里的示例代码解决了一个项目欧拉问题 从数字 1 开始 按顺时针方向向右移动 方向 5 x 5 螺旋形成如下 21 22 23 24 25 20 7 8 9 10 19 6 1 2 11 18 5 4 3 12 17 16 15 14 13
  • 有没有办法使用 perf 工具查找流程中各个功能的性能?

    我正在尝试在流程中实现各个功能的性能 我该如何使用 perf 工具来做到这一点 还有其他工具吗 例如 假设 main 函数调用函数 A B C 我想分别获得主要功能以及功能 A B C 的性能 有没有一个很好的文档来了解 perf 源代码
  • Tomcat 上的 Grails - 如何记录原始 HTTP 请求/响应

    我找不到配置我的虚拟教程 Grails 应用程序来记录 Grails 服务器 实际上是 Tomcat 接受 生成的所有 HTTP 请求和响应的方法 这可能吗 另一种选择是使用 tomcat 的内置访问日志记录 http tomcat apa
  • 如何首先使用 msbuild 构建依赖项目

    我刚刚开始研究 msbuild 因为我想制作自己的构建脚本 目前 我可以创建仅编译一个项目的构建脚本 但如何处理依赖项 例如 如果我有两个使用这两个 msbuild 脚本构建的项目怎么办 项目A xml 项目B xml 如何告诉 msbui
  • 用于构建“调试”和“发布”JAR 文件的惯用 Gradle 脚本

    我正在尝试创建一个 Gradle 构建脚本来构建 Java jar文件处于 发布 或 调试 模式 并且在参数化脚本时遇到问题 问题是 使用 Java 插件在 Gradle 脚本中执行此操作的惯用方法是什么 或者 如果没有惯用的方法 那么真正
  • FCM flutter 启用通知振动

    我正在为 Android 和 IOS 开发 Flutter 应用程序 我已经根据这个为Android创建了通知渠道article https rechor medium com creating notification channels
  • 类型 x 比值更难访问

    这是我的代码的抽象 module RootModule module private SubModule I want everything in this module to be inaccessible from outside th
  • Heroku 上带有 Django Channels 的 Websocket

    我正在尝试将我的应用程序部署到heroku 该应用程序有一个简单的聊天系统 使用 Websockets 和 django 通道 当我使用 python manage py runserver 测试我的应用程序时 应用程序的行为正如预期的那样
  • 处理时间跨度的最佳方式?

    PHP 中是否有处理时间跨度的首选类或方法 我感兴趣的主要功能是检查日期是否在时间跨度内 或生成下限和上限的时间戳 使用unix时间戳 如果是mysql数据 那么你可以像这样存储时间戳 如果不是 那么你也可以将mysql日期时间转换为uni
  • 如何使表格中一行的最后一个单元格占据所有剩余宽度

    在下面的 HTML 片段中 如何使包含 LAST 的列的宽度占据行的其余部分 并且包含 COLUMN ONE 和 COLUMN TWO 的列的宽度足以包含其内容 并且不更大 谢谢 table border collapse collapse
  • Gorm 中的级联删除不会删除关联表

    我是戈尔姆的新手 我试图进行级联删除 如果我删除一个用户 与该用户关联的角色 属于 个人资料 有一个 和书籍 一对多 也将被删除 我在下面设置了模型 但级联似乎不起作用 当我删除用户时 角色 个人资料和书籍仍保留在数据库中 而不是被删除 软
  • 单击元素以外的任意位置以使用 if 语句隐藏它

    解决方案如下 我已经阅读了这里有关这个概念的大多数问题 但我似乎无法让它与 if 语句一起使用 有什么帮助吗 JSFiddle http jsfiddle net 2udYp button click function div fadeTo
  • 如何通过 Swift 包管理器在 Xcode 中安装包

    我正在 Xcode 中开发一个项目 并尝试安装和使用加密货币Swift https github com krzyzanowskim CryptoSwift通过 Swift 包管理器进行包 我读了文档 https swift org pac
  • CMake:不支持的 GNU 版本 - 不支持高于 8 的 gcc 版本

    在降级我的 GCC 之前 我想知道是否有一种方法可以确定我的机器中的哪些程序 框架或依赖项将被破坏 以及是否有更好的方法来安装 openpose 例如 更改 CMake 中的某些内容 有没有办法可以解决这个问题 而无需更改我的系统 GCC
  • 同时使用 :nth-child 和 :nth-last-child

    我做不到 nth child and nth last child伪类同时工作 效果很好 突出显示前 3 个要素 a li nth child n 3 background fbfcc8 效果很好 突出显示最后 3 个元素 b li nth
  • Android:如何以原始尺寸显示图像

    我从字节数组创建位图图像并将其显示在 ImageView 中 这android layout width and android layout heightImageView 的设置为wrap content 并且android scale
  • 通过属性和正文指定 JSTL 值之间的区别

    我试图弄清楚 JSTL 的这两种用途之间是否存在功能差异
  • 电话号码的 jQuery 输入掩码

    我希望用户的输入自动填充电话号码的标点符号 以便看起来像这样 xxx xxx xxxx 这是我的 HTML 代码 div class form group div
  • UIManagedDocument 迁移数据模型

    我正在开发一个 iPhone 应用程序 它使用UIManagedDocument并将其文档存储在 iCloud 上 一切都工作正常 直到我更改了我的核心数据模型 方案 添加了新的模型版本 就像我在过去几周内多次所做的那样 我添加了一个新属性