2016-01-24 87 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