Файлы изображений исчезают, даже FileManager говорит, что они существуют - PullRequest
0 голосов
/ 22 апреля 2019

Я пытаюсь представить некоторое изображение из LocalNotification, когда пользователь приложения обнаружил «iBeacon».

Процедура

  • Приложение обнаружило iBeacon в фоновом состоянии.
  • Извлечение данных изображения из API.
  • Запись данных изображения в виде JPEG в папку каталога документов.
  • После успешного завершения нажмите LocalNotification с прикрепленным URL-адресом сохраненных изображений.
  • LocalNotificationнажал и появился на экране блокировки с отображением сохраненного изображения.

Здесь, FileManager.default.fileExisits() говорит True.И я подтвердил наличие файлов в ContainerData, загруженных XCode.

Но после этого возникает проблема.

  • Нажмите LocalNotification на экране блокировки.
  • Вызов приложения userNotificationCenter(_ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping () -> Void)
  • И проверьте прикрепленный URL-адрес сохраненного изображения с помощью FileManager.default.fileExisits()
  • Результат неверен.И эти изображения исчезли.Также подтверждено проверкой ContainerData.
  • Не удалось отобразить состояние приложения «Изображение на переднем плане».

Я полностью стекаюсь, чтобы выяснить, почему это происходит ...

I 'мы уже пробовали.

Вот мой код.

// Doing this after fetching image data from API.
// This writing is always Success.
if FileManager.default.fileExists(atPath: fileURL.path) {
    print(#function, "FileExsit")
    try FileManager.default.removeItem(at: fileURL)
} else {
    print(#function, "Not FileExsit")
}
try data.write(to: fileURL)
// Getting DocumentDirectory
public func urlForAdImage(beaconPrimaryID: String) -> URL? {

    let directoryURL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first!.appendingPathComponent("BeaconAds")

    var isDir : ObjCBool = false
    if FileManager.default.fileExists(atPath: directoryURL.path, isDirectory: &isDir) == false {
        do {
            try FileManager.default.createDirectory(at: directoryURL, withIntermediateDirectories: true, attributes: nil)
        } catch {
            print(#function, error)
            return nil
        }
    }

    return directoryURL.appendingPathComponent("\(beaconPrimaryID).jpg")
}

Спасибо за чтение.

...