2017-06-26 87 views
0

我想最初喜歡的UILabel對象的數組重複參數這樣如何初始對象的數組一樣的UILabel在迅速

var labels = [UILabel](repeating : UILabel(), count : 7) 

但我發現在陣列指向同一個標籤實例的所有項目。這是預期的嗎?我如何創建具有不同實例的數組?謝謝。

+0

對於做ü希望有UILabels的陣列是什麼?爲什麼你不能[String]? –

+2

此init方法不適用於參考類型。 – vadian

回答

0

不優雅,但

var labels = (1...7).map { _ in UILabel() } 

會做的伎倆。

顯然,Array.init(repeating:count:)評估重複元素只有一次,然後重複它,這是有道理的,我猜...所以你需要一個解決方案,將迭代和調用UILabel()在每一步。一個for循環和一些其他不同的技術也應該工作。

1

例如,你可以使用一個循環以創建標籤:

var labels = [UILabel]() 
for _ in 0 ..< 7 { 
    let label = UILabel() 
    labels.append(label) 
}