2016-09-21 3 views
0

Iは、switch文を有し、ケースの各々においてIが読み込ま文の数を有する: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 
    } 
} 
関連する問題