iOS如何获取下一行解析Swift

时间:2018-07-30 17:59:23

标签: ios swift parse-platform

我使用数据库Back4app,就像parse.com一样

我想加载点击按钮,数据库的下一行。

现在,当用户按下下一步时,我将第一行提取到标签和按钮上,应用程序将从数据库中加载新行。

我用于获取数据的代码:

let query = PFQuery(className: "test")
query.getFirstObjectInBackground{ (objects, error) in
    if error == nil && objects != nil {
        let question: String = objects!["question"] as! String
        let answer1: String = objects!["answer1"] as! String
        let answer2: String = objects!["answer2"] as! String
        let answer3: String = objects!["answer3"] as! String
        let answer5: String = objects!["answer5"] as! String
        self.question = question
        self.answer1 = answer1
        self.answer2 = answer2
        self.answer3 = answer3
        self.answer4 = answer5
        DispatchQueue.main.async {
            self.loadDataToBox()
        }
    } else {
        print("Error")
    }

我该怎么做?我找不到有关此信息。我只找到了如何加载到表格视图,但是我没有使用表格视图。

示例:

example

1 个答案:

答案 0 :(得分:0)

好吧,通过解析,您可能不想每次都继续调用服务器,因此您要做的就是将数据附加到数组中,然后仅获取每个索引处的信息。有很多方法可以做到这一点,但是我将展示一种简单的方法来做到这一点。解析越多,您就可以使用PFSubclassing,这是处理数据的一种更好的方法,但现在就这样。将其创建为新类

Class QuestionManager{
     var question: String?
     var answerA: String?
     var answerB: String?
     var answerC: String?
     var answerD: String?

}

在头等舱中做到这一点。

var questions = [QuestionManager]()
var arrayIndex = 0
let query = PFQuery(className: "test")
query.findObjectsInBackground{ (objects, error) in
if error == nil && objects != nil {
    for object in objects as? [PFObject]{
          self.questions.append(QuestionManager(
          question: object!["question"] as! String,
          answerA: object!["answer1"] as! String,
          answerB: object!["answer2"] as! String,
          answerC: object!["answer3"] as! String,
          answerD: object!["answer4"] as! String

          ))
    }
} else {
    print("Error")
}

然后两次访问它仅具有数组更改的索引

self.label.text = questions[arrayIndex].question

每次将一个数组添加到数组中时,它将返回下一组问题和答案

如果您需要澄清,请告诉我