iOS записывает данные в файл, файл не существует - PullRequest
0 голосов
/ 11 мая 2018

Я пытаюсь записать данные изображения в cacheDirectory, например:

let imageData = UIImageJPEGRepresentation(image, 1.0) else { fatalError("Impossible to read the image") }
try! imageData.write(to: cachedImageURL, options: .atomic)
print(fileManager.fileExists(atPath: cachedImageURL.absoluteString))

Где image - рабочий UIImage. оператор Print всегда возвращает False. Файл никогда не записывается, и возникает любое исключение из-за " try! "

Есть идеи?

печать cachedImageURL, это выглядит так

Файл: ///var/mobile/Containers/Data/Application/7B6B72C8-E794-4474-A658-48B66AEA31EC/Library/Caches/79d0e60e-5961-4538-bd9f-28187f4e26d0.jpg

Ответы [ 2 ]

0 голосов
/ 11 мая 2018

Только разобрался. Проблема пришла из моей печати

print(fileManager.fileExists(atPath: cachedImageURL.absoluteString))

, который должен быть cachedImageURL.path вместо cachedImageURL.absoluteString

print(fileManager.fileExists(atPath: cachedImageURL.path))
0 голосов
/ 11 мая 2018

Вы можете попробовать код ниже для сохранения изображений в каталог кэшей

* ПРИМЕЧАНИЕ: если вы сохраняете более одного, укажите другое имя изображения для всех

let fileManager = FileManager.default
let imageName = "image.jpg" //Need to change if more images want to save

do {
    let cachesDirectory = try fileManager.url(for: .cachesDirectory, in: .userDomainMask, appropriateFor:nil, create:false)
    let fileURL = cachesDirectory.appendingPathComponent(imageName)
    let image = your image //Give your image here
    if let imageData = UIImageJPEGRepresentation(image, 1.0) {
        try imageData.write(to: fileURL)
        print("Image Saved")
    }
} catch {
       print(error.localizedDescription)
}
...