You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

修改SwiftData模型后初始化ModelContainer崩溃,报错134110求助

SwiftData模型重构后ModelContainer初始化崩溃(NSCocoaErrorDomain 134110)解决思路

这个134110错误本质是持久化存储文件与重构后的模型不兼容,SwiftData的自动迁移机制无法处理你这次的模型变更,以下是针对性解决方法:

一、开发阶段快速解决:彻底清除旧存储文件

适合不需要保留现有测试数据的场景,直接删掉旧的持久化文件即可:

  1. 最简单的方式:在模拟器/真机上卸载你的App,重新运行
  2. 或者通过代码强制删除旧存储(仅开发阶段用):
struct myApp: App {
    init() {
        do {
            var config = ModelConfiguration(for: Role.self)
            // 删除旧的持久化文件
            if let storeURL = config.url {
                try? FileManager.default.removeItem(at: storeURL)
            }
            container = try ModelContainer(for: Role.self, configurations: config)
            // 后续代码...
        } catch {
            fatalError("Failed to initialize ModelContainer: \(error)")
        }
    }
}

二、需要保留数据:启用模型自动迁移

如果要保留现有数据,需在初始化容器时开启Core Data兼容的自动迁移选项,让系统尝试自动处理模型变更:

struct myApp: App {
    init() {
        do {
            let options = ModelConfiguration.Options()
            // 开启自动迁移
            options.setPersistentStoreOption(true as NSNumber, forKey: NSMigratePersistentStoresAutomaticallyOption)
            // 让系统自动推断映射模型
            options.setPersistentStoreOption(true as NSNumber, forKey: NSInferMappingModelAutomaticallyOption)
            
            let config = ModelConfiguration(for: Role.self, options: options)
            container = try ModelContainer(for: Role.self, configurations: config)
            // 后续代码...
        } catch {
            fatalError("Failed to initialize ModelContainer: \(error)")
        }
    }
}

三、复杂模型变更:手动管理模型版本

如果自动迁移失败(比如修改了属性类型、删除必填属性等),需要手动标记模型版本:

  1. 给旧版本模型添加版本标识符(重构前的代码):
@Model(versionIdentifier: "1")
class Role {
    // 旧模型属性
}
  1. 重构后的新模型使用新的版本标识符:
@Model(versionIdentifier: "2")
class Role {
    // 新模型属性
}
  1. 若系统仍无法自动推断映射,需要创建手动映射模型(通过Xcode的Core Data模型文件辅助创建,再关联到SwiftData的配置中)

四、排查模型重构的风险点

检查你这次重构是否包含以下可能导致迁移失败的操作:

  • 删除了带有@Attribute(.unique)或必填的属性
  • 修改了属性的基础数据类型(如String改为Int)
  • 更改了实体类的名称
  • 添加了新的必填属性但未设置默认值

内容的提问来源于stack exchange,提问作者CameronBaba

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 04:17:08