UITextField:用户输入append方法错误以及回答里的新问题无法传值的问题

故事熊
  • 69

问题:在实现用户输入append方法时提示错误

试过的方法:
教程中是这样写:

图片描述

报错提示:
图片描述

在群里提问

能把代码截全部?
我说:也许不能 我是用的是做了一个结构,之后前面是var array [arraylist]() 中间还有一个等号
都不知道你这一行干啥的 怎么看
图片描述

这个括号里面是跟一个格式化的字符串。
所以需要,分割 你这个写的不对
类比于OC里面的format 所以你这个里面是个字符串 你可以写 string(format)

aa.text ?? "" 两个问号 x ?? y表示判断x是否为nil,若不为nil,则将x解包后返回,否则,取y的值 空合运算符

添加了解包:
图片描述

这个apned方法里面只是一个string参数 你要把你要写的搞成一个srting
你的结构体定义了两个属性 那么就需要添加两个内容
append(a, b) append(aa.text ?? "" , "")

结构体可以使用便利构造 修改只要传一个的

问的第二个人:

尽量用可选绑定解包 不要强制解包 容易crash append报错是指数组? 截全 好像是类型不一致 后面是一个创建的结构 list
这个type后面是啥 这是你建的类? swift的数组只能接受同一类型的数据 好像是类型不一致 你这个数组只能接受List类型的数据
你append一个String类型的数据所以报错 有哪些属性
你可以把输入的字符串 赋值给 willLearnList的属性 然后appen一个List 类型 你可以自己重写构造方法
或者将结构体的属性设成 可选类型
回复
阅读 1.8k
1 个回答

在这里可以给List设定一个变量。

let Cell = List(Label1: "text", Label2: "text", Label3: "text")
        
         Array.append(Cell)

之后显示cell在数组里,数组为Tableview里。

目前的方法:

@IBAction func SaveButton(_ sender: Any) {
    
        let Cell = List(Label1: "text", Label2: "text", Label3: "text")
   
        Array.append(Cell)
   //确定分区的数量
   ···
    //确定每个分区中行的数量
   ···
    //显示cell内容
    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for:indexPath) as! TableViewCell
                                                //复用cell在自定义Cell中定义的Identifier             //强制转换为自定义的cell
        let List = WillLearnArray[indexPath.row]//将数据运用于每行
        
       //在TableViewCell中label为定义的结构:List里的label
       cell.Label1.text = List.Label1
       cell.Label2.text = List.Label2
       cell.Label3.text = List.Label3
       cell.Label4.text = List.Label4
       cell.Label5.text = List.Label5

问题:可以输入但无法传值

这里cell.LabelX.text = List.LabelX是否要修改为cell.cellX.text?
否则无法实现数据源显示,还是需要prepareforSegue进行VC的传值的方法?

自己的回答

在这里记一下2月9日晚上实现了出现的方法,以及编辑排序和删除行的方法。尽管string都是text。
依然很高兴。
原来是没有添加

func viewDidAppear(_ animated: Bool) {
                TableView.reloadData()
            }

方法。
现在打算还原这天成功的代码,再次出现了无法传值的现象。
先结束掉这个问题,在这里做一个备忘。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏