Есть несколько проблем с вашим решением:
- Вы не можете перечислить все изображения без необходимости создавать и поддерживать массив всех значений (что вы не хотите делать),
- Тот факт, что вы выделяете изображения для статических переменных, создаст много дополнительной памяти для вашей программы, это будет особенно плохо, если это большие изображения или их много.
Гораздо лучшим подходом было бы использование перечисления CaseIterable
.Это позволит расширить код в будущем, используя шаблон, который не приведет к перегрузке памяти и требует минимального обслуживания.
enum ImageAsset: String, CaseIterable {
//your cases go here...
case winnerPunyaOrang = "Winner Punya Orang"
case fireIco = "fire_ico"
//... and you can continuously extend them by adding more asset names
//This function will return images as and when you need them
func image() -> UIImage {
return Rswift.ImageResource(bundle: R.hostingBundle, name: self.rawValue)
}
}
Теперь, когда вам нужен актив изображения в программе, вы можете просто позвонить:
let image = ImageAsset.fireIco.image()