在實施“開放..”功能,通過檔案共享選項,應用程式無法訪問下載的檔案在“檔案提供存盤”,FileManager.default.fileExists(atPath: url.path)回報false雖然該檔案存在,同時在系統控制臺中也有類似的日志
Sandbox: FileAccessIssueA(11544) deny(2) file-test-existence
這可能是相關的,也可能是不相關的。此外,應用程式直接從 AirDrop 成功打開檔案,或者如果檔案移動到應用程式檔案夾。
要重現,請參閱示例專案(使用應用程式打開的 *.txt 檔案)。
如果這是正常行為,請提供建議,如果是,請直接查看相應的檔案。如果不是,請建議是否可以修復。
uj5u.com熱心網友回復:
您正在使用Supports opening documents in place應用程式 info.plist 中的選項。
當您使用此選項時,您必須使用安全范圍明確要求從 url 訪問檔案,因此將訪問檔案的代碼更改為類似以下內容:
let isSecuredURL = url.startAccessingSecurityScopedResource() == true
let result = FileManager.default.fileExists(atPath: url.path)
NSLog("File %@ %@", url.path, result ? "exists" : "not exists")
if (isSecuredURL) {
url.stopAccessingSecurityScopedResource()
}
將解決問題。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/315654.html
