2016-09-21 81 views
0

我有一个switch语句和在每种情况下我有许多语句内容如下:如何在Swift中将属性分配给多个变量?

star1.isHidden = true 

STAR1在这种情况下是图像视图。有没有办法将它分配给多个变量,如star2,star3等。有10个例子代表了很多行代码,我不禁想到有一个更高效/可读的方式。

回答

3

如果您正在使用界面构建器,则可以使用OutletCollection。否则,您可以创建一个包含所有变量的数组,并使用for-in循环。

0

有很多方法,其中最常见的一种是for循环。在这种情况下,你需要的恒星集合(如数组):[Star]()

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

没有关于您的设置,给你一个更好的建议足够的信息。

0

如果对象是基于NSObject的,则可以使用键值编码。这是在斯威夫特游乐场,但它的作品随处可见:

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 
    } 
}