2016-09-21 4 views
0

У меня есть переключатель заявление и в каждом из случаев, у меня есть ряд заявлений, гласивший:Как назначить свойство нескольким переменным в Swift?

star1.isHidden = true 

Star1 в данном случае является вид изображения. Есть ли способ присвоить это нескольким переменным, таким как star2, star3 и т. Д. В 10 случаях это количество многих строк кода, и я не могу не думать, что есть более эффективный/читаемый способ его выполнения.

ответ

3

Если вы используете построитель интерфейсов, вы можете использовать OutletCollection. В противном случае вы можете создать массив всех переменных и использовать цикл for-in.

0

Существует много способов, одним из наиболее распространенных будет цикл for. В этом случае вам потребуется набор звезд, таких как массив: [Star]()

for (star in stars) { 
    star.isHidden = true 
} 

Существует не хватает информации о вашей установке, чтобы дать вам гораздо лучше рекомендации.

0

Если объекты основаны на NSObject, вы можете использовать кодирование с ключом. Это в Swift детской площадки, но она работает везде:

class Star:NSObject { 
    public var hidden = false 
} 

let star1 = Star() 
let star2 = Star() 
let star3 = Star() 
let star4 = Star() 
let star5 = Star() 
let starMap:NSArray = [star1, star2, star3, star4] 

starMap.setValue(true, forKey: "hidden") 

Playground Result

1

Создать отдельный метод, который может перебирать массив мнений.

var starViews: [UIView] { 
    return [star1, star2, star3, /* add the rest of the stars here */] 
} 

func setStarViews(hidden hidden: Bool) { 
    for starView in starViews { 
    starView.hidden = hidden 
    } 
} 
Смежные вопросы