我有这样的结构:
- 用户
- CardSet 带有指向 User.objectId 的指针“user”和列“name”
- 带有指向 CardSet.objectId 的指针“cardset”和 col“name”的卡片
我想选择所有卡数据,包括当前用户的卡集名称。我在这里很迷失,因为我是解析和快速的新手,并且不知道如何完成这项工作。
我检查了文档并了解我必须包含
var query = PFQuery(className: "Card")
query.includeKey("cardset")
获取卡片集对象。 我不明白的是如何仅为当前用户选择数据?
最后,如何将所有数据放入数组中以将其用于 TableView 并将数据输出到其表单元格标签?
这是我到目前为止所拥有的:
var noteObjects: NSMutableArray! = NSMutableArray()
func fetchAllObjects(){
var query = PFQuery(className: "Card")
query.includeKey("cardset")
query.findObjectsInBackgroundWithBlock { (objects, error) -> Void in
if (error == nil){
var temp: NSArray = objects as NSArray
self.noteObjects = temp.mutableCopy() as NSMutableArray
self.tableView.reloadData()
}else{
println(error.userInfo)
}
}
println(self.noteObjects)
}
最佳答案
您的数据模型是合理的,但绕过它需要更复杂的查询。要获取 CardSet
用户为当前用户的 Cards
,您必须在 Card 查询中嵌入 CardSet 查询。执行此操作的方法是 whereKey:matchesQuery:
// this one finds CardSets whose user is currentUser
var innerQuery = PFQuery(className: "CardSet")
innerQuery.whereKey("user", equalTo:PFUser.currentUser())
// this one finds Cards whose CardSets match the preceding query
var query = PFQuery(className: "Card")
query.includeKey("cardset")
query.whereKey("cardset", matchesQuery:innerQuery);
query.findObjectsInBackgroundWithBlock //...
关于ios 快速解析 : Collect data from 3 classes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28836456/