所以,我正在制作一个需要选择各种内容的应用程序。您可以通过滑动到 UITableView 的右侧来选择它们。我正在使用 UIContextualAction,并使用 switch 语句来排序函数和可执行语句。一旦选择了 UITableView Cell,它将运行我的 switch 语句之一。这是从选择的indexPath.row 中获得的。现在,一旦选择了每个对象,它就会将名称 append 到数组中。
我的问题:一旦 append 对象,数组就不会添加。例如,我选择 Snapchat。该数组中有“Snapchat”。如果我也选择 Instagram,则数组应 append “Instagram”。确实如此,但它也忘记了其中的“Snapchat”,并且当它打印时,它只打印 1 个选定的对象。 (这是我最后选的)
如何创建一个数组,可以在其中添加更多对象而不会忘记
我已经考虑过在选定的表格 View 单元格上执行 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)
这是我选择多个并尝试 append 数组时得到的结果。
["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)
}
您已在将对象添加到数组的函数内声明了要 append 到的数组。 发生的情况是每次您添加某些内容时,它都会覆盖您刚刚输入的对象。
- 函数创建数组
- 将对象添加到数组
函数结束
函数创建数组(覆盖旧数组)
- 将对象添加到数组(现在仅在数组内添加单个对象)
- 函数结束
只需将数组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”时要小心,最好的做法是为数组指定一个更有意义的名称
关于arrays - 通过 If 语句追加数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56378564/