我已经能够通过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。
感谢您的帮助!
答案 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)
let adventureObject = PFQuery(className: "ClassName")
adventureObject.addAscendingOrder("objectId")
var objectID: String = String()
adventureObject.findObjectsInBackground(block: { (Success, error) in
})