通过 if 语句追加数组



所以,我正在制作一个需要选择各种东西的应用程序。您可以通过向 UITableView 的右侧滑动来选择它们。我正在使用UIContextualAction,并且正在使用switch语句对函数和可执行语句进行排序。一旦选择了 UITableView 单元格,它就会运行我的一个开关语句。这是来自所选的 indexPath.row。现在,一旦选择了每个对象,它将名称附加到数组中。

我的问题:一旦对象被附加,数组就不会添加。例如,我选择Snapchat。该数组中有"Snapchat"。如果我也选择Instagram,数组应该附加"Instagram"。它确实如此,但它也忘记了其中的"Snapchat",并且当它打印时,它只打印 1 个选定的对象。(这是我选择的最后一个)

我怎样才能制作一个数组,我可以在其中添加更多对象而不会忘记

我已经查看了在所选的表视图单元格上执行 if 语句。没有任何效果,并且想知道我如何解决此问题或找到解决方案

var array = [String]()
var choice = indexPath.row
switch choice {
case 0:
array.append("Instagram")
print(array)
case 1:
array.append("Snapchat")
print(array)
case 2:
array.append("VSCO")
print(array)
default:
print("Error")
print(array)

这是我选择多个并尝试附加数组时得到的。

["Instagram"]
["Snapchat"]
["VSCO"]
Error

如您所见,它们不是数组形式。

这就是你所做的

func someFunc() {
var array = [String]()
var choice = indexPath.row
switch choice {
case 0:
array.append("Instagram")
print(array)
case 1:
array.append("Snapchat")
print(array)
case 2:
array.append("VSCO")
print(array)
default:
print("Error")
print(array)
}

您已在将对象添加到数组的函数中声明了要追加到的数组。 每次添加某些内容时,都会覆盖您刚刚输入的对象。

  1. 函数创建数组
  2. 将对象添加到数组
  3. 函数结束

  4. 函数创建数组(覆盖旧数组)

  5. 将对象添加到数组(现在仅在数组内使用单个对象)
  6. 函数结束

只需将阵列移到函数之外var array = [String]()即可。

var array = [String]()
override func viewDidLoad() {
super.viewDidLoad()
}
func someFunc() {
var choice = indexPath.row
switch choice {
case 0:
self.array.append("Instagram")
print(array)
case 1:
self.array.append("Snapchat")
print(array)
case 2:
self.array.append("VSCO")
print(array)
default:
print("Error")
print(array)
}

另外,在将数组命名为"array"时要小心,最佳做法是给数组一个更有意义的名称

它确实添加了,但是您的var array = [String]()是一个上下文变量,一旦函数结束,它就会变得deinit,这是您的结构:

--> Controller
--> Function
--> Array

var array = [String]()放在控制器上而不是函数上,如下所示:

--> Controller
--> Array
--> Function

无需更改数组声明位置以外的任何内容。


注意:您以数组形式打印它们,但长度为 == 1。

相关内容

  • 没有找到相关文章