You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 11:15:33