将String作为数组调用

时间:2018-05-13 09:37:54

标签: ios swift swift4

我已经被困在一个问题上几天了,我不知道如何说出来,所以我没有太多的运气寻找答案,希望你可以帮忙!

我的array of 20 arrays与我的array of 20 strings相同,当点击按钮时,数组会更改为所选按钮的名称,我可以使用以下命令将其更改为字符串:

newArray = oldArray[0]

但是找不到一种方法来插入字符串名称作为新的数组名称,如果有人有任何建议我会很高兴,谢谢!

newArray = [oldArray[0]]

只需创建一个包含一个字符串的数组,我一直在寻找类似的函数:

newArray = Array(named: oldArray [0])

但不确定它是否存在。

2 个答案:

答案 0 :(得分:0)

如果要插入某些特定索引,请使用babel,如下所示:

insert

如果您想在最后添加,请使用var newArr = [String]() newArr.insert("jogendar", at: 0) /// Removes and returns the element at the specified position. ,如下所示:

append

如果要在选择时更改按钮的名称,则不需要维护数组,可以为以下状态设置按钮的标题:

var newArr = [String]()
newArr.append("jogendar") ///Adds the elements of a sequence to the end of the array.

当您想要选择按钮时,按钮名称会根据所选状态自动更改:

let btn = UIButton(frame: CGRect(x: 0, y: 0, width: 100, height: 30))
btn.setTitle("jogendar_defautl", for: UIControlState.normal)
btn.setTitle("jogendar_selected", for: UIControlState.selected)

答案 1 :(得分:0)

这不是一个答案,你没有提供足够的详细信息,但让我们看看我们是否可以帮助你走上正确的轨道。你写道:

  

我一直在寻找类似的功能:

newArray = Array(named: oldArray [0])

这不存在,因为数组(和其他值)没有名称。您似乎混淆了变量名称和值,它们是非常不同的东西。例如,表达式:

[0, 1, 8, 27, 64]

生成一个包含五个元素的数组,它没有 name 它只是一个值。该值可以分配给变量:

var cubes = [0, 1, 8, 27, 64]

现在我们有一个带有 name cubes的变量,其当前值是数组。上面的语句都声明了一个变量cubes,给它一个类型[Int],并为它赋予了一个初始值[0, 1, 8, 27, 64]。它没有命名值,可以将值复制到另一个变量中:

var anotherVariable = cubes

完成上述操作后,您有两个变量cubesanotherVariable,每个变量当前具有相同的值。值 共享,您可以更改其中一个值:

anotherVariable[0] = 42

现在anotherVariable包含值[42, 1, 8, 27, 64],而cubes仍包含值[0, 1, 8, 27, 64]

好的,回到你的问题,你写道:

  

我的array of 20 arraysarray of 20 strings ...

相同

你似乎在描述的内容是:

var myArrays = [ [0, 1, 4, 9, 16], [0, 1, 8, 27, 64] ]
var myNames = [ "squares", "cubes" ]

您的按钮上有标签squarescubes。您似乎尝试的是通过myArrays阵列从点击按钮到myNames的元素 - 这是您在哪里命名"价值观来自。

映射"名称"到一个"阵列"你应该使用词典,它是一个集合键,你的名字,值,你的数组:

let myCollection = [ "squares":[0, 1, 4, 9, 16], "cubes":[0, 1, 8, 27, 64] ]

这声明了一个常量(使用let而不是var)字典,其键是字符串和值数组。因此,您有效地拥有一组"命名数组"。

现在,您可以使用以下行的语句按名称为此集合选择一个数组:

var currentArray = myCollection[currentButtonTitle]

其中currentButtonTitle之前已设置为您点击的按钮的标题。

HTH