无法将Tableview单元格值添加到JSON参数,为什么没有nil?迅速

问题描述 投票:0回答:1

我将tableview单元格标签文本添加到phNumArray,在tableview中,我获得了所有值,但是当我尝试传递服务调用时,它为什么会消失呢?

 class ViewController: UIViewController,UITableViewDelegate,UITableViewDataSource {

@IBOutlet weak var joinersTableView: UITableView!

var tablcellArray  = [String]()

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

    let cell: Namescell = tableView.dequeueReusableCell(withIdentifier: "Namescell") as! Namescell
    cell.empRoleLbl.text = empTeftfield.text

    tablcellArray.append((cell.empRoleLbl.text!))

    print("employee names array \(tablcellArray)")// here coming all appende values

    return cell
}

func getPostData(params: [String:Any]) -> Data? {
        return try? JSONSerialization.data(withJSONObject: params, options: .prettyPrinted)
        DispatchQueue.main.async {

        self.joinersTableView.reloadData()
        }
    }

    func callPostApi() {
        print("tableview emp values\(tablcellArray)")// here array values not coming

        let url            = URL(string: "http://itaag-env-1/")!
        var request        = URLRequest(url: url)
        request.httpMethod = "POST"

        print("appende values \(tablcellArray)")
        try? request.setMultipartFormData(["contactsList": "\(tablcellArray)"], encoding: .utf8)
        DispatchQueue.main.async {
                           self.joinersTableView.reloadData()
                           }
        URLSession.shared.dataTask(with: request) { data, _, _ in
            if let data = data, let json = try? JSONSerialization.jsonObject(with: data, options: .mutableContainers) as? [String: Any] {

            }
        }.resume()
    }
  }

在tableview cellfor行的附加值中出现..但是当我尝试将数组放入callPostApi函数中时,tablcellArray显示nil为什么呢?

请分享您的知识,请尝试解决此错误。

arrays swift uitableview null cell
1个回答
0
投票

先更改

var tablcellArray  = [String]() 

var tablcellArray  = [String] 

然后在您的cellForRowAt中尝试访问您的数据,例如

let empTeftfield =  tablcellArray[indexPath.row]

如果此行打印正确,则>

cell.empRoleLbl.text = empTeftfield.text

这应该起作用。

如果未从api中获取数据,则不会打印您的值重新加载tableview。您不应该根据自己的条件向数组添加值。

© www.soinside.com 2019 - 2024. All rights reserved.