问题标签 [nsfilecoordinator]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3586 浏览

ios - 在 iOS 13 中从外部存储读取文件

我有一个 iOS 应用程序正在尝试从外部存储设备读取文件而不将它们导入应用程序的沙箱。

我已按照此处概述的 Apple 文档来执行此操作-

提供对目录的访问

我能够检索所选目录(位于通过 Lightning 端口连接的外部存储设备上)并枚举目录中的文件。

但是,当我尝试按照推荐的模式对这些文件执行某些操作时,我会失败,并且基本上会在文件上出现权限错误。

我应该补充一点,如果文件通过模拟器在 iCloud Drive 上,这可以正常工作。它在外部设备和真实设备上的 iCloud Drive 上都失败。

是一个演示失败的完整工作项目。

  1. 在模拟器上运行可以很好地访问 iCloud Drive 文件。但在设备上运行失败。
  2. 在设备上运行以访问 USB 驱动器失败。
0 投票
0 回答
474 浏览

ios - 使用 startAccessingSecurityScopedResource 仍然得到“无法打开,因为您无权查看它”

当使用本机应用程序“文件”选择文件时,调用我的应用程序并获取路径:

我在字符串“originalPath”中捕捉到路径

error.localizerDescription 的值

在控制台中我可以看到:

在调用 startAccessingSecurityScopedResource 时总是得到 FALSE,在 fileCoordinator 中的访问器内永远看不到 originaURL。

有没有其他方法可以读取文件,我可以请求权限吗?

0 投票
0 回答
262 浏览

icloud - iOS 14:NSFilePresenter 没有收到回调/通知;适用于iOS13

我有一个采用 NSFilePresenter 协议的 UIViewController。我已经实现了presentedItemDidChange() 以便接收存储在iCloud 上无处不在的容器中的文件的更改。我的实现在 iOS13.7 上运行良好,但在 iOS 14 上失败。

当我从 macOS 上的“Finder”之类的外部进程修改呈现的文件时,不会调用 presentItemDidChange()。

如果这是 iOS 14 中的一个已知错误,还是我在实现中遗漏了什么?

我的实现大致是这样的:

谢谢