UIImage с использованием contentOfFile
я использую
self.imageView.image = UIImage(named: "foo.png")
выбрать и загрузить изображения вUIIMageView
, У меня есть изображения в моем приложении подimages.xcassets
, Проблема в том, что этот конкретныйinit
кэширует изображение для повторного использования в соответствии софициальная документация Apple:
Если у вас есть файл изображения, который будет отображаться только один раз, и вы хотите, чтобы он не был добавлен в системный кеш, вам следует вместо этого создать свое изображение, используяimageWithContentsOfFile:, Это исключит одноразовое изображение из кэша системных изображений, что потенциально улучшит характеристики использования памяти вашего приложения.
Мой вид позволяет циклически проходить по изображениям, прежде чем выбрать одно из них, и поэтому объем занимаемой памяти продолжает увеличиваться при циклическом цикле и никогда не уменьшается, даже когда я возвращаюсь из этого представления.
Поэтому я пытаюсь использоватьUIIMage(contentsOfFile: "path to the file")
который не кэширует изображение. Здесь у меня возникают проблемы программно получить путь к изображениям, которые я сохранил подimages.xcassets.
Я пытался с помощью:
NSBundle.mainBundle().resourcePath
а такжеNSBundle.mainBundle().pathForResource("foo", ofType: "png")
без удачи Для первого я получаю resourcePath, но при доступе к нему через терминал я не вижу никаких активов под ним, а второй получаюnil
когда я использую это. Есть ли простой способ сделать это?
Также посмотрел на несколько вопросов SO (какэтот, этот а такжеэтот) без удачи. Нужно ли размещать мои изображения в другом месте, чтобы иметь возможность использоватьpathForResource()
? Как правильно это сделать?
Трудно представить, что никто не сталкивался с таким сценарием раньше :)!