我仍然无法理解在解析中处理更深层指针结构的正确方法。
示例:
卡指向 CardSet
CardSet 指向课程和用户
让我们说,我想拥有所有的CardSet,包括
我可以在一个查询中查询所有这些内容吗?
并且在没有任何其他fetchIfNeededInBackgroundWithBlock
查询的情况下提供数据?
我知道我可以通过
获得课程var query = PFQuery(className: "CardSet")
query.whereKey("user", equalTo: PFUser.currentUser())
query.includeKey("lesson")
但这只给了我一个课程对象,我不能从这个课程中访问任何数据(比如col" name"),除非我使用fetchIfNeededInBackgroundWithBlock
什么需要另一个查询,当然还有更多加载的时间。
如何获取所有查询数据
包括所有指针列
以便使用
将此数据固定到本地数据存储区 PFObject.pinAllInBackground(objects, block: nil)
不要忘记,如何查询与CardSet相关的卡数?
答案 0 :(得分:0)
首先,我建议在Parse中进行子类化,它使表(指针等)之间的关系更加清晰。 如何子类化PFObject,你可以在解析
上探索this guide如何查询CardSet中的卡数
您需要卡片组,您需要卡片。 (PFObject或子类PFObject)。 然后就这样做:
var query = PFQuery(classname: "cards")
query.whereKey("CardSet", equalTo: yourCardSetObject)
//Synchronously
query.findObjects().count
//Asynchronously
query.findObjectsInBackgroundWithBlock({
(objects, error) in
if error != nil {
println(error.localizedDescription)
return
}
objects.count
})
如何获取课程名称
正如我所说的那样,建议继承PFObjects,因为你需要将那些对调试不太有趣的对象转换成可怕的代码。 我这样做了:
var query = PFQuery(className: "CardSet")
query.whereKey("user", equalTo: PFUser.currentUser())
query.includeKey("lesson")
query.findObjectsInBackgroundWithBlock({
(objects, error) in
if error != nil {
println(error.localizedDescription)
return
}
for object in objects as? [PFObject] {
var lesson = object["lesson"] as PFObject
println(lesson["name"])
}
})