Swift 包中的 CoreData 模型
CoreData Model within Swift Package
我正在尝试将 CoreData 模型放入 Swift 包中以从我的主代码库中提取我的模型代码/类。
我已完成以下操作以重现我从头开始遇到的问题:
- 创建一个名为 SampleModelPackage 的新 swift 包(文件 -> 新建 -> Swift 包)
- 创建了核心数据模型定义文件(创建文件 -> 新建 -> 文件 | iOS -> 核心数据 -> 数据模型)
- 将其与自动生成的 SampleModelPackage.swift
一起保存在 Sources/SampleModelPackage 目录中
现在 - 当我尝试在 Xcode 中打开 Model.xcdatamodelId 文件时,它只显示一个“版本”图标(见屏幕截图),而在项目中创建核心数据模型文件或框架将允许我编辑模型。
第二个/后续问题是我将如何正常扩展代码-gem'd 模型文件?我将如何加载该模型定义(通常我会使用 Bundle ID 和模型文件名)
我已尝试将模型文件添加到 Package.swift 文件的资源数组(使用 .process 和使用 .copy),如本页所述:https://developer.apple.com/documentation/swift_packages/bundling_resources_with_a_swift_package
或者更笼统地说,这可能吗? (这篇文章https://ishabazz.dev/blog/2020/7/5/using-core-data-with-swift-package-manager似乎在暗示像这样封装核心数据模型是可以的)
(我用的是Xcode12.4)
您需要在一个普通的 Xcode 项目中创建您的 Core Data 模型,然后您可以创建您的包并将模型拖到其中。 (即使没有明确描述,如果您仔细看,这也是链接文章中所做的)。
我认为最好的办法是为您的实体手动生成源代码文件并将它们添加到您的包中。您使用 Bundle
加载模型,但您使用 Bundle.module
而不是 Bundle.main
我正在尝试将 CoreData 模型放入 Swift 包中以从我的主代码库中提取我的模型代码/类。
我已完成以下操作以重现我从头开始遇到的问题:
- 创建一个名为 SampleModelPackage 的新 swift 包(文件 -> 新建 -> Swift 包)
- 创建了核心数据模型定义文件(创建文件 -> 新建 -> 文件 | iOS -> 核心数据 -> 数据模型)
- 将其与自动生成的 SampleModelPackage.swift 一起保存在 Sources/SampleModelPackage 目录中
现在 - 当我尝试在 Xcode 中打开 Model.xcdatamodelId 文件时,它只显示一个“版本”图标(见屏幕截图),而在项目中创建核心数据模型文件或框架将允许我编辑模型。
第二个/后续问题是我将如何正常扩展代码-gem'd 模型文件?我将如何加载该模型定义(通常我会使用 Bundle ID 和模型文件名)
我已尝试将模型文件添加到 Package.swift 文件的资源数组(使用 .process 和使用 .copy),如本页所述:https://developer.apple.com/documentation/swift_packages/bundling_resources_with_a_swift_package
或者更笼统地说,这可能吗? (这篇文章https://ishabazz.dev/blog/2020/7/5/using-core-data-with-swift-package-manager似乎在暗示像这样封装核心数据模型是可以的)
(我用的是Xcode12.4)
您需要在一个普通的 Xcode 项目中创建您的 Core Data 模型,然后您可以创建您的包并将模型拖到其中。 (即使没有明确描述,如果您仔细看,这也是链接文章中所做的)。
我认为最好的办法是为您的实体手动生成源代码文件并将它们添加到您的包中。您使用 Bundle
加载模型,但您使用 Bundle.module
Bundle.main