Ошибка восстановления имени файла из PHAsset в iOS 13.3 - PullRequest
1 голос
/ 04 марта 2020

Я работаю над приложением, отображающим информационную панель на основе пиктограмм. Мне дали пользователю возможность выбрать пиктограмму из библиотеки фотографий и показать ее в приложении. В рамках этого процесса я восстанавливаю имя файла, чтобы я мог представить имя пиктограммы вместе с изображением.

Я использую UIImagePickerController, чтобы выбрать изображение из библиотеки фотографий и PHAsset, чтобы собрать имя файла:

func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
    if let asset = info[UIImagePickerControllerPHAsset] as? PHAsset {
        let assetResources = PHAssetResource.assetResources(for: asset)

        print(assetResources.first!.originalFilename)
    }

    dismiss(animated: true, completion: nil)
}

Это решение прекрасно работает в симуляторе XCode с iOS 13.2. Тем не менее, он не работает в Ipad под управлением iOS 13.3. В последнем случае я понял, что имя файла изменяется во время загрузки файла в библиотеку фотографий. В результате я восстанавливаю обобщенное имя c, такое как IMG_001 или IMG_052 (файл: ///var/mobile/Media/DCIM/100APPLE/IMG_001.png)

Я проверил все метаданные из assetResources и я убедился, что атрибуты имени файла и URL-адреса регистрируют это имя c. Я также проверил, что я получаю это имя, когда импортирую файл из библиотеки фотографий Ipad в мою MacOS. Однако, если я получаю доступ к файлу из утилиты Ipad File Manager, я вижу правильный.

Поэтому кажется, что iOS13.3 меняет имя файла как часть процесса загрузки в библиотеку фотографий. Я был бы очень признателен за понимание того, как восстановить исходное имя файла.

Заранее спасибо

...