2016-09-21 121 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 
    } 
}