Храните изображение UIImagePickerController локально в активах приложения - PullRequest
0 голосов
/ 12 апреля 2019

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

Я пробовал другие методы, в первую очередь те, которые используют UIImagePNGRepresentation. Но это больше не существует в Swift 4+, поэтому мне нужен какой-то другой метод.

   func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any])
    {
        picker.dismiss(animated: true)

        profilePicture = info[.editedImage] as! UIImage
    }
}

Что я хочу сделать, так это отображать изображение в виде картинки профиля. Но когда приложение перезапускается, изображение все равно появляется. Так как это с рулона камеры, я не могу сохранить его в .xcassets

1 Ответ

0 голосов
/ 12 апреля 2019

Давайте предположим, что именно так вы получаете свое изображение:

profilePicture = info[.editedImage] as! UIImage

Хорошо, значит, в этот момент вы знаете, что это за изображение. Поэтому храните его на диске в известном месте (например, в документах) под известным именем. В будущих запусках все, что вам нужно сделать, это посмотреть, есть ли изображение, и использовать его, если оно есть.

в первую очередь те, которые используют UIImagePNGRepresentation. Но это больше не существует в Swift 4 +

Да, это так, и это способ извлечь данные и сохранить их на диске. Все, что произошло, это то, что имя изменилось и теперь это метод UIImage.

https://developer.apple.com/documentation/uikit/uiimage/1624096-pngdata

...