Я синхронизирую iCloud Drive и локальное хранилище (папка «Документы») в моем приложении.Но есть 1 ошибка.
1) устройство 1 (или 2) -> копировать файлы из документов в контейнер iCloud
2) устройство 1 (или 2) -> читать файлы из контейнера iCloudк документам - все хорошо.
Но:
1) устройство 1 -> копировать файлы из документов в контейнер iCloud
2) устройство 2 -> копировать файлы из контейнера iCloudДокументам - а вот баг.Все файлы обычно копировались, но они повреждены, и я не могу открыть их в Документах (но вижу их).
На приведенном ниже экране 1 и 3 файла были созданы на текущем устройстве, а 2, 4 и 5 файлов были созданы на другом устройстве и были синхронизированы с контейнером iCloud.И еще: обычно размер файла (1 и 3) - 32 КБ, битых файлов - 2 КБ.
Мой код (я использую эту функцию для копирования из документов в iCloud идля копирования из iCloud в документы):
private static func copyFilesFrom(url: URL, toURL: URL, folder: String) {
let fileManager = FileManager.default
do {
let newDir = toURL.appendingPathComponent(folder)
if !fileManager.fileExists(atPath: newDir.absoluteString) {
try fileManager.createDirectory(at: newDir,
withIntermediateDirectories: true,
attributes: nil)
} else {
print("Already created catalog with folder: \(folder)")
}
let dirs = try fileManager.contentsOfDirectory(atPath: url.appendingPathComponent(folder).path)
for dir in dirs {
do {
try fileManager.copyItem(at: url.appendingPathComponent(folder).appendingPathComponent(dir),
to: newDir.appendingPathComponent(dir))
} catch {
print(error)
}
}
} catch {
print(error)
}
}