Swift:点击保存按钮时如何将文本框内容存入数组新索引
解决UITextField内容存入数组时覆盖的问题
兄弟,你这问题的关键太明显啦——每次点击保存按钮的时候,你都在Save方法里重新创建了一个空的myArray数组!这就意味着之前存的内容全被清空了,每次都是在新数组里插元素,可不就只会覆盖第一个位置嘛。
给你改个正确的写法,保证每次点击都能把内容加到数组的新索引里:
// 把数组放到ViewController的属性位置,让它跟着页面一直存在,别每次点击都重置 var myArray = [String]() @IBAction func Save (_ sender: UIButton){ // 别用强制解包!文本框的text是可选值,空的话会崩溃,用空合运算符兜底 let firstText = textfield1.text ?? "" let secondText = textfield2.text ?? "" let allText = "\(firstText),\(secondText)" // 直接用append往数组末尾加,自动占新索引,不用自己管index myArray.append(allText) // 打印看看数组内容,方便验证 print("当前数组:\(myArray)") }
关键改动说明:
- 把数组移到方法外面:作为ViewController的属性,这样数组的生命周期和页面一致,不会每次点击都被清空重置,之前保存的内容会一直保留。
- 用append替代手动插入:
append会自动把新元素放到数组的最后一个位置,也就是新的索引上,完全不用自己维护index变量,省心又不会出错。 - 处理可选值:把强制解包
!换成?? "",如果文本框没输入内容,就用空字符串代替,避免因为nil导致崩溃。
要是你非得想用insert方法(其实完全没必要哈),那也要保证数组是类属性,然后这么写:
// 插入到数组的末尾,也就是新索引的位置 myArray.insert(allText, at: myArray.count)
内容的提问来源于stack exchange,提问作者Steven
相关产品推荐
相关产品推荐

