ios 快速解析 : Collect data from 3 classes

标签 ios swift parse-platform

我有这样的结构:

  • 用户
  • 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/

相关文章:

iOS 将 base64 编码图像上传到 RESTful 服务器时获取 http 400

iphone - 使用等待对话框导航到另一个 ViewController

windows-phone-8 - 将 Windows Phone 8.1 项目降级到 Windows Phone 8

ios - Sqlite 插入或替换不更新一列

ios - 如何找出 App Transport Security 阻止了哪些 HTTP 请求?

uitableview - swift - 错误 : unexpectedly found nil while unwrapping an optional value

xcode - 向 Storyboard 添加新的顶级 UIView 并保留其他 UIView 约束

swift - 在 swift 中实现手势识别器后,如何找到按钮标签?

ios - 解析云代码调用中突然崩溃

iOS swift : Parse remote push notification does NOT go to all users