iOS 13 中 Core Data 持久存储迁移期间发生错误

2023-12-21

将 XCode 更新到版本 11 后,我向 Core Data 添加了新的模型版本,并在新版本中向实体添加了新属性。使新版本处于活动状态并将新属性添加到托管对象文件中。

向用户发布此版本后,它开始崩溃并显示以下消息:“用于打开持久存储的托管对象模型版本与用于创建持久存储的托管对象模型版本不兼容。" and "重复的列名 ZNEWCOLUMN“。到目前为止,我对核心数据模型进行了很多更改,并且迁移始终有效。

此崩溃仅出现在 iOS 13 上!

这就是我加载核心数据的方式:

    lazy var managedObjectContext: NSManagedObjectContext = {

        return self.persistentContainer.viewContext
    }()

    lazy var persistentContainer: NSPersistentContainer = {
        /*
         The persistent container for the application. This implementation
         creates and returns a container, having loaded 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.
         */
        let container = NSPersistentContainer(name: "MyModel")
        container.loadPersistentStores(completionHandler: { (storeDescription, error) in

            if let error = error as NSError? {
                // Replace this implementation with code to handle the error appropriately.
                // fatalError() causes the application to generate a crash log and terminate. You should not use this function in a shipping application, although it may be useful during development.

                /*
                 Typical reasons for an error here include:
                 * The parent directory does not exist, cannot be created, or disallows writing.
                 * The persistent store is not accessible, due to permissions or data protection when the device is locked.
                 * The device is out of space.
                 * The store could not be migrated to the current model version.
                 Check the error message to determine what the actual problem was.
                 */
                fatalError("Unresolved error \(error), \(error.userInfo)")
            }
        })
        let description = NSPersistentStoreDescription()
        description.shouldInferMappingModelAutomatically = true
        description.shouldMigrateStoreAutomatically = true
        container.persistentStoreDescriptions.append(description)
        return container
    }()

任何帮助,将不胜感激。


同样的事情也发生在我身上,iOS 12 的轻量级迁移在真实设备和模拟器上是正确的,但在 iOS 13 上失败并出现下一个日志结果:

SQLite错误代码:1,'重复的列名:ZNAME_OF_THE_COLUMN ....错误域 = NSCocoaErrorDomain 代码 = 134110 “持久存储迁移期间发生错误。”

我像@iOS Dev post 一样加载数据。 我在迁移之前和之后检查了模拟器路径中的 xxxx.sqlite 数据库文件,并且没有具有这些新的相同名称的列。 了解*.sqlite的路径emulator你必须设置一个断点,当它停止时放入控制台po NSHomeDirectory()。 然后转到 Finder 窗口,点击按键Control + Command + G并粘贴路线。你可以处理它(例如)SQLite 数据库浏览器程序,它是免费的。

经过长时间的搜索,我看到了一些人发生了什么,但我没有看到任何解决方案。

我的是:

  1. 选择实际的 *.xcdatamodel。
  2. 选择编辑器 > 添加模型版本。
  3. 提供基于先前模型的版本名称(例如 XxxxxxV2.xcdatamodel)。
  4. 单击这个新版本模型NewV2.xcdatamodel。
  5. 选择这个新版本作为Current在 IDE 右侧的属性上。
  6. 在 DDBB 做出改变。
  7. 运行应用程序并且可以正常工作。

我做了覆盖应用程序的测试(使用新值),效果很好。

我希望这会有所帮助。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

iOS 13 中 Core Data 持久存储迁移期间发生错误 的相关文章

  • SwiftUI 列表与右侧的部分索引?

    是否可以有一个在右侧有索引的列表 就像下面 SwiftUI 中的示例一样 我在 SwiftUI 中做了这个 Contacts swift TestCalendar Created by Christopher Riner on 9 11 2
  • UICollectionView 自动滚动到 IndexPath 处的单元格

    在加载集合视图之前 用户设置集合视图数组中的图像数量 所有单元格都不适合屏幕 我有 30 个单元格 但屏幕上只有 6 个 问题 如何在加载 UICollectionView 时自动滚动到具有所需图像的单元格 新的 编辑过的答案 将其添加到v
  • ios 用户如何取消 Facebook 登录?

    当用户到达此屏幕时 无法取消 我能做些什么 为了首先获得这个视图 我正在运行 NSMutableDictionary params NSMutableDictionary dictionaryWithObjectsAndKeys vid l
  • 使用 iOS 8 自定义键盘发送图像?

    我一直在为 iOS 8 开发自定义键盘 但在尝试使用键盘发送图像时偶然发现了一个问题 我做了一些研究 似乎没有一种简单的方法可以做到这一点UITextDocumentProxy因为只有NSStrings被允许 我是否忽略了使用自定义键盘发送
  • 本地化现有的 iOS 应用程序

    我不敢相信以前没有人问过这个问题 要么是我的编码实践太无组织性 要么是我没有使用正确的关键字 How can I localize an existing iOS app that does not use NSLocalizedStrin
  • 如何在 Core Data 中存储图像?

    只是猜测 我创建一个属性并将其类型设置为 二进制 但最终我该如何使用它呢 我猜幕后有一个 NSData 那么该属性实际上采用 NSData 吗 这个问题已经被问过很多次了 答案有点复杂 当涉及二进制数据时 您应该根据要使用的数据的预期大小来
  • 如何在 Firebase 控制台中使用 Apple 新的 APN .p8 证书

    随着最近 Apple 开发者帐户的升级 我面临着一个困难 在尝试创建推送通知证书时 它为我提供了 p8 证书 而不是可以导出到 p12 的 APNs 证书 Firebase 控制台仅接受 p12 证书 那么我如何从这些新的 p8 证书中获取
  • 模块未使用库演化支持进行编译;使用它意味着无法保证二进制兼容性

    最近我遇到了 SDK 的编译时警告 这是否意味着它不是使用目标设置 构建用于分发的库 构建的 你需要设置Build Libraries for Distribution在项目中Build Settings to No然后它就会消失
  • 在横向中自动调整 UITableCells 内容的大小

    在 UITableView 中 我通过 UILabels 将内容添加到单元格中 定义最佳尺寸 与单元格宽度允许的一样大 我注意到只有tableView contentSize width是可靠的 因为cell contentView bou
  • 带操作按钮的颤动本地通知

    我在我的 flutter 项目中尝试了 flutter 本地通知插件 它在简单通知上工作正常 但我需要带有操作按钮的通知功能 请帮助我或建议我实现此功能 不幸的是 flutter local notifications 插件尚不支持操作按钮
  • 在 iphone/ipad 选项卡之间共享 NSManagedObjectContext 和其他服务类

    我很乐意构建一个基于 Core Data 选项卡的 iPad 应用程序 我在我的应用程序委托类中使用以下内容将 NSManagedObjectContext 传递到我的根视图 BOOL application UIApplication a
  • 当我输入字符时,SwiftUI 中的 TextField 失去焦点

    当我在文本字段中输入字符时遇到问题 在练习集视图 我必须重新单击文本框才能输入另一个字符 如果我从文本字段中删除绑定 我可以流畅地输入文本 我认为这与我的演讲者班级和更新集函数重新创建一个集合实例 因为我必须替换数组中两层深处的一些值 Co
  • 适用于 iPhone / iPad / iOS 的快速、精益 PDF 查看器 - 提示和提示?

    最近有很多关于绘制 PDF 的问题 是的 您可以使用UIWebView但这无法提供您所期望的优秀 PDF 查看器的性能和功能 您可以绘制PDF页面到 CALayer http www cocoabuilder com archive coc
  • UIButton的高亮状态由什么控制事件开始和结束

    我正在创建类似钢琴的视图UIButton作为钢琴键 什么UIControlEvents当按钮获得和失去突出显示状态时 我应该监听以获得回调吗 我试图创建子类UIButton并添加属性观察者highlighted并且运行良好 然而 有时我需要
  • Swift:使具有相同“形状”的两种类型符合通用协议

    我有两种不同的类型 它们代表相同的数据 并且具有完全相同的 形状 这两种不同的类型是代码生成的 我被迫处理它们 但是 我想让它们符合一个通用的协议 这样我就可以对这两种类型一视同仁 这是一个例子 假设这是我所坚持的两种代码生成类型 stru
  • 在 iOS 中,如何创建一个始终位于所有其他视图控制器之上的按钮?

    无论是否呈现模态或用户执行任何类型的转场 有没有办法让按钮在整个应用程序中 始终位于顶部 而不是屏幕顶部 有什么方法可以让这个按钮可拖动并可捕捉到屏幕上吗 我正在以苹果自己的辅助触摸作为此类按钮的示例 您可以通过创建自己的子类来做到这一点U
  • 哪些 Flutter 插件或功能可以利用外部 iOS/Android 显示器来显示与主显示器不同的内容

    我正在构建一个跨平台应用程序 需要在外部显示器上显示不同的视图 通常通过连接到 LCD 投影仪的 HDMI 适配器电缆连接 Flutter 是否能够在内置的外部显示器上显示不同的屏幕 在现有的 Flutter 插件中还是使用现有的 Flut
  • 水平 UICollectionView 单行布局

    我正在尝试使用以下命令设置简单的水平布局UICollectionView 兜圈子却没有达到预期的结果 所以任何指针或例子将不胜感激 我粘贴经常更改的代码但没有成功可能没什么意义 该图像显示两行 第一行是单个项目 尺寸正确并且在中心正确对齐
  • SwiftUI:发送电子邮件

    在正常情况下UIViewController在 Swift 中 我使用此代码发送邮件 let mailComposeViewController configuredMailComposeViewController mailCompose
  • 在 UIScrollview 上显示缩略图的最佳方法是什么(从服务器下载)

    我想在 UIScrollview 如照片应用程序 上显示许多图像 作为缩略图 所有图像将从服务器下载 据我所知 有几种选择 1 通过创建 UIImageviews 然后将它们添加为主滚动视图上的子视图 2 通过子类化一个UIView类 然后

随机推荐

  • 当 AsyncTasks 运行时处理屏幕方向变化

    我已经被这个困扰有一段时间了 当我有一个单独的屏幕时 如何正确处理屏幕方向的变化Thread AsyncTask跑步 目前 我有 android configChanges orientation keyboard keyboardHidd
  • Gradle def 与 ext

    使用有什么区别ext varname and def varname 例如 下面的代码似乎工作相同 task copyLicenses def outDir project buildDir absolutePath reports lic
  • jQuery Mobile 选择器菜单的代码?

    我一定错过了一些明显的东西 我正在查看 jQuery Mobile 的文档 但他们没有为您提供执行他们正在演示的操作的代码 我正在尝试创建一个选择器菜单 我在哪里可以获得此代码 它必须像一行 对吧 作为一个完全的新手 我在这里不知所措 谢谢
  • 如何使用 Windows 窗体创建自定义用户按钮/控件并将其与线条连接

    我正在尝试创建一些自定义按钮或用户控件 如建议的 GUI 中所示 功能应如下所示 图表或配置以图形方式创建 可以从工具栏拖动控件或通过鼠标右键单击 下拉菜单插入控件 通过从一个控件拖动到另一个控件 它们应该通过线连接 切换应该将视图从带有选
  • scapy.sr 和 scapy.srp 之间的差异

    我正在使用 Scapy 扫描我的网络 但看不到功能之间的差异 scapy sr and scapy srp 文档说scapy sr 返回数据包来自layer 3 and scapy srp 返回数据包来自layer 2 这些层是什么 抱歉我
  • 使用参数变量 Unity 加载场景

    在我的游戏中 有一个地图视图 其中包含 50x50 的图块网格 当你点击图块时 你会被发送到该图块视图并攻击事物等 就代码而言 这些 图块 之间的唯一区别是图块 ID 即 网格上的哪个数字 该数字将在 init 时传递给服务器来处理其余部分
  • 调用 ~Derived() 和 ~Base() 之间对象的状态

    Question C 标准对对象当时的状态有何保证 在派生类的析构函数执行之后 但在基类的析构函数执行之前 这是调用派生类的子对象的析构函数的时间 Example include
  • 尝试使用风味时 Flutter 应用程序构建失败

    我正在尝试在我的应用程序中使用风味 我遵循了各种指南 但每次都因同样的问题而无法构建 因为基本上每个博客文章和 SE 问题都引用相同的文章和资源 所以我不会再这样做了 为了调试 我决定简化问题并启动一个新项目 正常示例项目 并添加风味 每种
  • iOS 上的 OnAppearing 方法

    当我的应用程序位于后台并转到前台时 OnAppearing 方法在 IOS 中不起作用 或者当手机锁定然后解锁并且应用程序位于前台时 不会调用 OnAppearing 方法 在 Android 上一切正常 我在下面找到了这个指南 但仍然不起
  • 夜间模式颜色不适用于回收站视图背景

    我想为我的 Android 应用程序实现夜间模式 因此我使用 Theme AppCompat DayNight 主题来实现夜间模式 但我必须在夜间模式期间自定义工具栏和回收器视图的颜色 为此 我已在 attrs xml 文件中声明了该属性
  • ConnectivityManager.getBackgroundDataSetting() 已弃用,该使用什么替代?

    以前可以使用 ConnectivityManager getBackgroundDataSetting 检查用户是否有后台数据设置 true 此方法现已弃用 http developer android com reference andr
  • Selenium 中的计时页面加载时间

    我正在使用 selenium 在我的网站上记录一些性能测试 例如登录时间 查询时间等 我在 Selenium IDE 上记录了一个示例脚本 我现在让它运行一个 Selenium RC java public void testNew thr
  • Microsoft Visual Studio 2010 支持 c99 吗?

    我想知道 Microsoft Visual Studio 2010 是否支持 C99 如果没有 我如何使用标准类型 例如intptr t and uintptr t Visual Studio 2010 不支持 C99 语法 stdint
  • 为什么列表理解比附加到列表快得多?

    我想知道为什么列表理解比附加到列表快得多 我以为差异只是表达性的 但事实并非如此 gt gt gt import timeit gt gt gt timeit timeit stmt t for i in range 10000 t app
  • tensorflow变量初始化错误:尝试使用未初始化的值变量

    为什么会发生这种情况 错误消息 尝试未初始化变量错误 https i stack imgur com 0rcrd jpg这是我的来源 来源 使用张量流在计算机中学习 JPG 图像 https i stack imgur com kxh4c
  • 随机测试用例失败 - Forked JVM 异常退出。

    我有一套 Junit 测试 每次在本地运行时都会通过 我已经设置了一个作业来运行该套件 hudson 使用 ANT 来调用测试 该套件在 hudson 机器中传递了相当长的一段时间 但从过去 3 天开始 一项测试有时会失败 随机 而且我们还
  • Facebook 不会在 iOS 应用程序的仪表板上跟踪应用程序安装情况

    我在developers facebook com 上创建Facebook 应用程序 根据以下内容在我的 iOS 应用程序中配置和集成 Facebook SDK脸书指南 https developers facebook com docs
  • 如何安装 Windows 10 SDK 以与 Visual Studio 2017 一起使用

    我不知道如何安装适用于 Visual Studio 2017 的 Windows 10 SDK 我下载并运行了 Windows 10 SDK 安装程序 它显示Please find winsdksetup exe in Windows ki
  • 配置单元更新最后访问时间

    我想更新 hive 表上的lastAccessTime 在网上google后 我得到了一个解决方案 set hive exec pre hooks org apache hadoop hive ql hooks UpdateInputAcc
  • iOS 13 中 Core Data 持久存储迁移期间发生错误

    将 XCode 更新到版本 11 后 我向 Core Data 添加了新的模型版本 并在新版本中向实体添加了新属性 使新版本处于活动状态并将新属性添加到托管对象文件中 向用户发布此版本后 它开始崩溃并显示以下消息 用于打开持久存储的托管对象