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

如何在自定义文件包文档类型中嵌入SwiftData模型容器

跨平台媒体管理应用SwiftData与自定义文件包集成问题

我对此做了大量研究,但未能找到可行的解决方案。本人在Swift、SwiftUI/SwiftData/AppKit/UIKit方面的知识和经验有限,可能无法正确看待问题以得出解决方案。

背景

正尝试开发一款适配macOS/iOS的跨平台媒体(图片/视频/PDF)管理应用,功能类似苹果的Photos应用。应用文档类型为自定义文件包,包内包含SwiftData模型容器文件以及存放用户媒体的文件夹。

已尝试的方案

方案1:结合SwiftData模型使用DocumentGroup,直接写入文件包

在App场景中,通过DocumentGroup(editing: .customDocument, migrationPlan: CustomMigrationPlan.self)创建文档,生成带有SwiftData模型容器的文档。当需要向文档中添加媒体文件时,获取文档URL,使用FileManager将文件写入文档内的目标文件夹。结果是媒体文件已保存到文件包,但SwiftData容器损坏(所有模型数据被重置为空)。

方案2:结合自定义文件包使用DocumentGroup,尝试嵌入SwiftData容器

当前方案中,通过DocumentGroup(newDocument: CustomFileDocument())创建文档,拥有自定义的FileDocument和FileWrapper。但问题是不知道如何将SwiftData容器嵌入到FileDocument中,比如能否在FileWrapper初始化时创建SwiftData模型容器,目前无法解决这个问题。

求助

  • 能否指导如何实现自定义文件包内同时包含SwiftData容器和媒体文件?
  • 是否误解了问题方向?
  • 是否需要结合AppKit/UIKit使用Core Data,因为目前SwiftUI/SwiftData无法实现该需求?

非常感谢您的阅读和任何建议。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 22:54:53