tableView数据源字典

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

我正在尝试为tableView数据源使用字典,我正在从数据库中获取一个包含键和值数组的对象,因此[String:[String]]

    var requestedList = [String]()
    var keyArr = [String]()
    var requestedDictionary = [String: [String]]()

    let tQuery = PFQuery(className: "MyClass")
        tQuery.whereKey("username", equalTo: PFUser.current()?.username as Any)
        tQuery.selectKeys(["descContent", "header"])
        do {
            let returnedObjects = try tQuery.findObjects()
            for object in returnedObjects {
                let header = object["header"] as! String
                keyArr.append(header)
                if let arr = object["descContent"] as! [String]? {
                    requestedDictionary[header] = arr
                    requestedList += arr
                }
            }
        } catch {
        }

我似乎无法正确地将值与tableView的行相对应,但是,建议我使用数组存储值,这是我对keyArr所做的事情。我的问题是如何在数据源方法中访问键的内容和相应的值?这是我到目前为止的内容,但无法相应地链接键和值]

    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return requestedList.count
    }

    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "RequestViewCell", for: indexPath) as! RequestViewCell

        cell.descLbl.text = "Your ticket has been requested by \(requestedList[indexPath.row])"
        cell.refLbl.text = "for: \(keyArr[indexPath.row])"

        cell.leftBtn.tag = (indexPath.section * 100) + indexPath.row
        cell.leftBtn.addTarget(self, action: #selector(leftClick(sender:)), for: .touchUpInside)
        cell.rightBtn.tag = (indexPath.section * 100) + indexPath.row
        cell.rightBtn.addTarget(self, action: #selector(rightClick(sender:)), for: .touchUpInside)

        return cell
    }
ios swift dictionary nsdictionary
1个回答
0
投票

您可以通过这种方式将字典

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