2015-12-01 2 views
1

Я программирую в одиночку. Я преподаю себя уже 6 месяцев. Поскольку нет никого, кто мог бы спросить, есть некоторые очень простые вещи, к которым я задаюсь вопросом, можно ли их сделать более эффективно, т.е. более эффективно использовать память, сделать сжатие/более четкое и т. Д. Один из шаблонов, которые я часто повторяю, - это тип for-loop установить свойства для объектов ...Есть ли более эффективный способ установки изображений в UIImageView?

var userCategoryWins = [String] //filled with data from whatever source 

var userCategory1 = UIImageView() 
var userCategory2 = UIImageView() 
var userCategory3 = UIImageView() 
var userCategory4 = UIImageView() 

    let userCategoryArray = [userCategory1, userCategory2, userCategory3, userCategory4] 

    for index in 0..<userCategoryWins.count { 

     let imageView = userCategoryArray[index] 
     imageView.hidden = false 
     imageView.image = UIImage(named: "leader\(userCategoryWins[index])") 

    } 

Предполагая, что там должен быть порядок, к которому изображения присваиваемые каждому ImageView, это не только то же самое изображение, есть «лучше» способ сделать это, или это будет считаться достаточным в профессиональной среде?

ответ

0

То, что у вас есть, достаточно хорошо, но я был бы склонен хранить изображения в коллекции массива или розетки с самого начала, вместо того, чтобы делать один на лету.

Также вы можете весело провести время с zip в этом контексте:

for (win, imageView) in zip(userCategoryWins, userCategoryArray) { 
    imageView.hidden = false 
    imageView.image = UIImage(named: "leader\(win)") 
} 

Это немного чище ИМХО, и это делает связь между двумя массивами более очевидными.

Смежные вопросы