解析查询不显示最新数据

时间:2015-11-09 00:22:37

标签: ios swift parse-platform

import UIKit
import Parse

class loadMainViewController: UIViewController {

    //create new pfQuery - This is the bridge between our app and Parse: "trivia" is our class name on Parse
    let queryTrivia: PFQuery = PFQuery(className:"trivia")

    @IBOutlet weak var label1: UILabel!

    override func viewDidLoad() {
        super.viewDidLoad()
        //retrieve data from parse query
        retrieveTrivia()  
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

    func retrieveTrivia() {

        //This CLOSURE gives access to all objects in "trivia" class using our queryTrivia Bridge
        queryTrivia.findObjectsInBackgroundWithBlock { (objects:[PFObject]?, error:NSError?) -> Void in
        if( error == nil ){

            print("error is nil")
        }
            var didLoad = true

            // Loop through the objects array
            for triviaObject in objects!{

                // Retrieve data for each object (key, question, ans2, ans3, correctAns)
                let triviaQuest : String? = (triviaObject as PFObject)["question"] as? String
                let triviaAns2 : String? = (triviaObject as PFObject)["ans2"] as? String
                let triviaAns3 : String? = (triviaObject as PFObject)["ans3"] as? String
                let triviaAns : String? = (triviaObject as PFObject)["correctAns"] as? String
                let triviaKey : Int? = (triviaObject as PFObject)["key"] as? Int

                //Check that items are not nil, and create trivia object, add to triviaQuestions Array
                if ( triviaKey != nil && triviaQuest != nil && triviaAns2 != nil &&  triviaAns3 != nil && triviaAns != nil){
                    let trivia = triviaQuestion(Key: triviaKey!, Question: triviaQuest!, Answer: triviaAns!, WrongAnswer:  triviaAns2!, WrongAnswer2:  triviaAns3!)
                    triviaQuestions.append(trivia) // append to the global array of trivia questions

                }else{
                    self.label1.text = "Network Error"
                    didLoad = false
                }   
            }

            for element in triviaQuestions{
                print(element.Key)
            }

            if (didLoad == true) {
                //perform segue to View Controller : Main menu
                self.performSegueWithIdentifier("finnishLoad", sender: self)
            }    
        }     
    }
}

我的问题在查询retrieveTrivia()方法中的数据时发生错误。查询可以解决几个问题。保存在TriviaQuestion,TriviaAns,TriviaAns2,TriviaAns3中的数据是我以后使用The parse网站更改的旧数据,只需单击单元格并手动编辑每个场景即可。此外,我似乎无法获得关键字段,它总是以零形式返回。

当我运行它时,triviaAns变量包含“Cow”,但在查看数据时会在线显示“Mozzarella”。

在更新字段后,为什么我会收到错误的数据以及为什么关键字段会以nil的形式返回时,有任何想法?

以下是现在的数据 enter image description here

1 个答案:

答案 0 :(得分:0)

确保您连接到正确的Parse应用程序 - 检查App Delegate中setApplicationId:clientKey的调用中的键与Parse.com上应用程序设置中显示的内容相匹配