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

Mac Catalyst沙盒应用写入外置磁盘应选用哪种保存文件对话框

适用对话框选型说明
  • 你此前使用的[UIDocumentPickerViewController alloc] initForExportingURLs]属于文件导出模式,该模式强制要求传入沙盒内已存在的本地文件路径,系统后续会自动完成文件复制/移动操作,完全无法满足大文件无法提前在沙盒内生成临时文件的需求。
  • 直接在外置驱动器创建、写入大文件的场景,应当使用创建新文档模式的UIDocumentPickerViewController,对应初始化方法为initForCreatingDocumentURLsWithTypes:asCopy::
    • 该弹窗会允许用户自主选择外置驱动器上的目标保存位置,用户确认选择后,系统会自动为应用授予对应路径的安全作用域写入权限,无需提前在沙盒内生成任何临时文件
    • 拿到回调返回的目标URL后,先调用startAccessingSecurityScopedResource()方法激活权限,即可直接在该路径下创建文件、流式写入大体积数据,全程不会占用内置存储空间,写入完成后调用stopAccessingSecurityScopedResource()释放权限即可。
  • 注意事项:
    • 不要在沙盒化Mac Catalyst应用中直接调用NSSavePanel实现该需求,该方式不符合沙盒权限规则,会无法通过App Store审核
    • 无需单独申请外置磁盘的全局访问权限,通过文档选择器获取的用户指定路径权限是完全合规的

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 05:48:28