2016-01-24 66 views
1

我有兩個變量,string0string1。我想隨機將標籤設置爲其中一個字符串。我試圖用一個隨機數,這樣產生的變量名:使用隨機數來選擇變量

let string0a = "\(Name!) sees something that offends \(Gender!)." 

let string1a = "\(Name!) saw Star Wars earlier." 

let number = arc4random_uniform(1) 
text1.text = string\(number!)a 

什麼是隨機設置標籤文本到兩個字符串的一個最好的方法是什麼?

+0

大多數語言不允許這種類型的變量名的操作。您可能會更好地生成一個隨機數,然後使用if語句來選擇兩個字符串中的一個。或者,您可能希望將字符串2或更多添加到數組中,並使用生成的數字在隨機索引處選擇一個元素。 –

+0

作爲解決方案:將它們放入一個數組中,並通過索引獲得 – EBDOKUM

+0

您能否提供代碼以便在索引中訪問它們?我相當新穎,謝謝! – MatisDS

回答

1

您不能在運行時在Swift中生成變量名稱,因爲它們在編譯時使用。這正是數組被髮明:

let strings = [string0a, string1a] 

let number = Int(arc4random_uniform(2)) 

text1.text = strings[number] 

或更簡潔:

text1.text = [string0a, string1a][Int(arc4random_uniform(2))] 
+0

請注意,對於'.._ uniform(1)','number'將始終具有值'0'。 – dfri

+0

@dfri,是的,我只是修改OP的代碼而沒有考慮它。 – vacawama