後,我有一個使用CloudKit
作爲後端的應用程序,其中有一些CKRecords
一些CKAssets
無法訪問文件將其移動到文件目錄
其中有些資產是PDF
文件,我沒有在打開它們所述QuickLook Previewer
擷取記錄後,我保存CKAsset
URLs
在陣列中,用下面的代碼:
guard let assets = attachment["attachments"] as? [CKAsset] else { return }
assets.forEach({ (asset) in
attachmentsURLs.append(asset.fileURL)
})
每fileURL
被莫名其妙地打印:
file:///private/var/mobile/Containers/Data/Application/C4406091-B55C-46AC-A612-69052F2275BB/Library/Caches/CloudKit/34af81edf8344be1cf473ef394e06ccc8e1bc8cf/Assets/85DEDDB6-FB5B-4BC9-AB93-D8951AC304F7.012af7f83e322df6d0d1829b94956e4b829edbe974
最後的字符串:85DEDDB6-FB5B-4BC9-AB93-D8951AC304F7.012af7f83e322df6d0d1829b94956e4b829edbe974
是文件本身,有這個我嘗試將此文件移動到DocumentsDirectory
。
我試着將它們移動和重命名他們,給他們的特定擴展,在這種特殊情況下將.pdf
我做這個用下面的代碼:
let documentsPath = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0]
var url = URL.init(fileURLWithPath: documentsPath)
let component = NSUUID().uuidString + "." + fileExtensions[index]
url.appendPathComponent(component)
do {
try FileManager.default.moveItem(at: fileURL as URL, to: url)
} catch {
print("Failed to save attachment with extension with error:", error)
return
}
正如你所看到的,我將緩存的文件移動到文檔目錄,並使用隨機字符串+文件擴展名對其進行重命名。
使用iOS模擬器,一切都按預期工作。
該文件會從搬到這裏: file:///Users/ivancantarino/Library/Developer/CoreSimulator/Devices/CCE2FCA5-05F0-4BB7-9A25-CBC168398A62/data/Containers/Data/Application/561A3461-0048-4676-808F-2D96B74DBDCD/Library/Caches/CloudKit/34af81edf8344be1cf473ef394e06ccc8e1bc8cf/Assets/FADF0479-E7AE-4340-83C5-C9E0889E4E87.012af7f83e322df6d0d1829b94956e4b829edbe974
到這裏:
file:///Users/ivancantarino/Library/Developer/CoreSimulator/Devices/CCE2FCA5-05F0-4BB7-9A25-CBC168398A62/data/Containers/Data/Application/561A3461-0048-4676-808F-2D96B74DBDCD/Documents/52CAC8CD-EF0E-4E55-8D1B-8B267D07BAAA.pdf
而且他們我充滿QuickLook
數據源,我可以在真實的iPhone然而可視化文件不如預期,設備這不起作用。
預覽顯示一個空文件,並帶有ZERO KB
。
在真實設備上的文件被從這裏移動:
file:///private/var/mobile/Containers/Data/Application/6870DDC2-32FD-4FF2-89F4-04F87BBE534B/Library/Caches/CloudKit/34af81edf8344be1cf473ef394e06ccc8e1bc8cf/Assets/A187A987-BE4E-4C6A-9CBE-E66F3FEF7333.012af7f83e322df6d0d1829b94956e4b829edbe974
到這裏:
file:///var/mobile/Containers/Data/Application/6870DDC2-32FD-4FF2-89F4-04F87BBE534B/Documents/FD501C6D-9E95-46DD-BC58-EA2C45B62DAC.pdf
什麼可以造成這個問題?
爲什麼在模擬器中可以正常工作,並且不能在設備上工作?
我試了很多不同的東西,這讓我瘋狂。
任何提示?
謝謝。
仍然沒有得到downvote –