arrays - 通过 if 语句追加数组
问题描述
所以,我正在制作一个需要选择各种东西的应用程序。您可以通过滑动到 UITableView 的右侧来选择这些。我正在使用 UIContextualAction 并且正在使用 switch 语句来排序函数和可执行语句。选择 UITableView 单元后,它将运行我的一个 switch 语句。这是从 indexPath.row 选择的。现在,一旦选择了每个对象,它就会将名称附加到一个数组中。
我的问题:添加对象后,数组不会添加。例如,我选择 Snapchat。该数组中有“Snapchat”。如果我也选择 Instagram,则数组应附加“Instagram”。确实如此,但它也忘记了其中的“Snapchat”,当它打印时,它只打印 1 个选定的对象。(这是我选的最后一个)
我怎样才能创建一个可以添加更多对象而不会忘记的数组
我已经研究过在选定的 tableview 单元格上执行 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)
}
您已经在将对象添加到数组的函数中声明了要附加到的数组。发生的情况是每次添加内容时,它都会覆盖您刚刚输入的对象。
- 函数创建数组
- 将对象添加到数组
功能结束
函数创建数组(覆盖旧数组)
- 将对象添加到数组(现在仅在数组内的单个对象)
- 功能结束
只需将您的数组移到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)
}
此外,在命名数组“数组”时要小心,最好给数组起一个更有意义的名称
推荐阅读
- javascript - Javascript 从另一个站点加载字体
- postgresql - 如果今天的结果为空白,则显示昨天的总数
- python - Python Multiprocessing Process.start() 等待进程启动
- if-statement - 如果条件匹配,公式返回 TRUE?
- python - 熊猫日期时间生成格式
- c# - 如何将 ModelState 与 JsonPatchDocument.Applyto 一起使用
- python - 如何使用变量减少我的 sqlite3 代码?
- reactjs - useEffect 每次运行两次
- typo3 - TYPO3 - 更简单的方法,将 colPos 中的内容渲染到 Fluidtemplate 中?
- flutter - 你将如何在颤动中创建一个细胞环?