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

SwiftUI文档应用问题:从「最近项目」创建的文件不显示

SwiftUI文档应用:Files「最近项目」创建文档丢失问题

问题现象

基于Apple官方SwiftUI文档应用示例开发的项目,在iOS 18.4 + Xcode 16.3环境下出现异常:

  • 从Files应用「最近项目」标签创建新文档后,文件既不显示在「最近项目」列表,也不存在于Files应用的任何目录中
  • 打印创建的文档URL显示路径格式有效,但实际导航到该路径时文件不存在
  • 从Files应用「浏览」标签创建文档则完全正常,文件能正确保存并显示

重现步骤

  • 使用官方SwiftUI文档应用示例项目
  • 运行应用后,切换到Files应用的「最近项目」标签
  • 创建新文档,观察文件是否出现
  • 切换到「浏览」标签重复创建操作,对比结果

解决方案尝试

1. 显式指定文档默认存储位置

在文档类型的configuration中,明确设置默认保存位置为用户文档目录,避免依赖「最近项目」的临时聚合逻辑:

struct MyDocument: FileDocument {
    // ... 原有文档实现 ...
    
    static var configuration: DocumentConfiguration {
        let defaultLocation = FileDocumentSaveLocation.default(.documentDirectory)
        return DocumentConfiguration(for: Self.self) { config in
            config.defaultSaveLocation = defaultLocation
        }
    }
}

2. 强制完成文档持久化写入

在文档创建后,主动触发保存操作,确保文件被写入持久化目录:

DocumentGroup(newDocument: { MyDocument() }) { file in
    ContentView(document: file.$document)
        .onAppear {
            Task {
                do {
                    // 强制以创建模式保存到当前URL
                    try await file.save(to: file.fileURL, for: .forCreating)
                } catch {
                    print("文档保存失败: \(error.localizedDescription)")
                }
            }
        }
}

3. 验证URL的实际存储路径

创建文档后,打印并检查file.fileURL的完整路径,确认其是否位于用户沙盒的Documents目录下(而非临时目录)。如果路径指向临时区域,说明系统未正确处理「最近项目」标签下的存储请求。

4. 反馈给Apple

该问题大概率是iOS 18.4的系统API兼容性问题,建议通过Apple Feedback Assistant提交反馈,附上完整的重现步骤、环境信息和项目代码片段,帮助Apple定位修复。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 02:50:02