Должен ли я удалять файлы, импортированные с помощью UIDocumentPicker?

Итак, я импортирую файл в свое приложение с помощью UIDocumentPicker.

    let documentMenu = UIDocumentMenuViewController(documentTypes: ["public.xml"], in: .import)
    documentMenu.modalPresentationStyle = .formSheet
    documentMenu.delegate = self

    present(documentMenu, animated: true)

У меня нет расширения для управления документами или чего-то в этом роде. Это xml. Мне просто нужно разобрать его и показать пользователю результат. Его нельзя редактировать, ничего не нужно сохранять и т. д.

В методе делегата

func documentPicker(_ controller: UIDocumentPickerViewController, didPickDocumentAt url: URL) {
    parseFor(path: url)
}

Я вижу, что путь указывает на папку /tmp/.

Printing description of url:
▿ file:///private/var/mobile/Containers/Data/Application/9C47C67D-B6F3-4E93-8239-52DCA93A6003/tmp/package.Inbox/file.kml

Вопрос в том, должен ли я что-то с этим делать после того, как пользователь закончит? Я предполагаю, что если файл находится в /tmp, он в конечном итоге будет удален системой.

Кроме того, ЕСЛИ ДА, как мне это сделать? Просто сохранить путь куда-нибудь и удалить файл по этому пути?

Спасибо!


person Alex Bartiş    schedule 09.01.2017    source источник


Ответы (1)


Из документы относительно tmp/:

Используйте этот каталог для записи временных файлов, которые не нужно сохранять между запусками вашего приложения. Ваше приложение должно удалять файлы из этого каталога, когда они больше не нужны; однако система может очистить этот каталог, когда ваше приложение не запущено. Содержимое этого каталога не резервируется iTunes или iCloud.

Так что нет, вам не нужно ничего с этим делать, так как ОС позаботится об очистке, когда ваше приложение перестанет работать, в какое-то неизвестное время.

Однако, если вы знаете, что с файлом покончено, рекомендуется удалить его и освободить место на устройстве пользователя. Удаление файла работает так же, как и удаление любого файла по заданному пути.

person smg    schedule 11.01.2017
comment
Благодарю вас! Не знаю, как я пропустил это! - person Alex Bartiş; 11.01.2017