在swift中的标签中显示数组

时间:2018-05-11 06:44:26

标签: swift object parse-platform

我想在Swift中从Parse获取两个显示对象数据。我尝试过以这种方式使用label但它只显示对象中的最后一个元素。请问如何让它显示标签中对象中的所有元素。像一个元素到一个标签。谢谢

 let query = PFQuery(className: "Questionnaire")
 query.findObjectsInBackground { (objects, error) -> Void in
    if error == nil {

     // There were no errors in the fetch
        if let returnedObjects = objects {
     // var text = ""
     // Objects Array is not nil
     // loop through the array to get each object

             for object in returnedObjects {
                 print(object["question"] as! String)
                 // text.append(object["question"] as! String)
                self.Label.text = (object["question"] as! String)


             }


        }
    }
 }

4 个答案:

答案 0 :(得分:1)

您可以像这样一行并使用question分隔符加入所有,,您可以将分隔符更改为任意(empty, -,...etc)

if let returnedObjects = returnedObjects {
    self.Label.text = returnedObjects.map {($0["question"] as? String) ?? nil}.compactMap({$0}).joined(separator: ",")
}

答案 1 :(得分:0)

使用tableview。

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

        let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath) as! YouTableViewCell 
        cell.textLabel.text = yourArray[indexpath.row] as? String ?? ""          
        return cell

}

答案 2 :(得分:0)

如果使用UILabel

很重要
var concatenatedString = ""

for object in returnedObjects {

    concatenatedString += object["question"] as! String
}

self.Label.text = concatenatedString

答案 3 :(得分:0)

您正在循环遍历数组并将每个值设置为Label.text。但是,设置Label.text将取代之前标签上的内容。这就是你只能看到最后一项的原因。

一种解决方案是显示数组的字符串表示形式:

self.Label.text = "\(object)"

另一个解决方案是在Suganya Marlin建议的表格视图中显示项目。您需要符合UITableViewDatasource并实施各种方法。这是guide