在Swift中检索parse.com数据

时间:2014-11-24 17:23:34

标签: swift parse-platform

我已经能够通过Swift成功保存到Parse,但是在检索数据时遇到了问题(所有关于检索的教程似乎都是针对Obj-C的。)

这是我的代码(带有Id的编辑)。

Parse.setApplicationId("XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", clientKey: "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX")


    var query = PFQuery(className: "EventObject")
    query.getObjectInBackgroundWithId(objectId: String!) {
        (event: PFObject!, error: NSError!) -> Void in

        if error == nil {
            println(event)

        } else {

        println(error)

        }

    }

我现在在这个类中有4条记录,但如果我想为所有这些记录提取数据,如果我不确定ID是什么,如何使用ID获取Object?我假设我可以按顺序访问它们作为一个数组,但我不太清楚如何做到这一点,我很困惑,因为我知道要检索的唯一命令似乎需要知道ID。

感谢您的帮助!

4 个答案:

答案 0 :(得分:4)

官方parse documentation解释了如何进行查询 - swift中有示例代码。

在您的情况下,您必须使用findObjectsInBackgroundWithBlock

var query = PFQuery(className:"EventObject")
query.findObjectsInBackgroundWithBlock { (objects: [AnyObject]!, error: NSError!) -> Void in
  if error == nil {
    for object in objects {
        // Do something
    }
  } else {
      println(error)
  }
}

如果成功,它会向闭包提供与查询匹配的对象数组 - 因为查询中没有设置过滤器,它只返回所有记录。

答案 1 :(得分:1)

Swift 2.1更新

func fetchFromParse() {
    let query = PFQuery(className:"Your_Class_Name")
    query.findObjectsInBackgroundWithBlock { (objects, error) -> Void in
        if error == nil {
            for object in objects! {
                // Do something
            }
        } else {
            print(error)
        }
    }


}

答案 2 :(得分:0)

以下是 Swift3.0 中获取对象的代码。

let query = PFQuery(className: "Your_Class_Name")
    query.findObjectsInBackground { (objects, error) in
        if error == nil {

        }
        else {

        }
    }

答案 3 :(得分:0)

从解析中检索数据: swift 3

 let adventureObject = PFQuery(className: "ClassName")
    adventureObject.addAscendingOrder("objectId")
    var objectID: String = String()
    adventureObject.findObjectsInBackground(block: { (Success, error) in
    })