什么是这个iOS解析语句的Android等价物,userQuery.includeKey(“favoriteHouses.landlord”?)

时间:2016-06-09 02:57:18

标签: android ios swift parse-platform

我正在将iOS应用转换为Android。该应用程序使用Parse作为后端。 我坚持这个特定的行(嵌套指针,如果我是正确的):

 userQuery.includeKey("favoriteHouses.landlord")

现在我不知道如何将其转换为Android:

parseQuery.include("favoriteHouses.landlord");

上述转换不会产生任何结果。

实际上,我能够获得指针数组。但我还想检索另一个表中名为landlord的字段中存在的用户表行。 情况就是这样:我有两张桌子:一张是“House”,另一张是“User”。用户可以标记喜欢的房屋。因此,最喜欢的标记房屋存储为用户表中的指针数组。这些指针指向房屋表中的房屋。在house表中,有一个名为landlord的指针类型字段,它包含用户的对象id并且是指针类型。因此,在获取那些最喜欢的房子时,我也希望用户通过使用指向用户表的房东指针。

我翻译成android的整个代码是:

// A query which will return the internal array of the object received by the objectQuery
class PFArrayQuery: PFQuery {

var objectQuery: PFQuery
var returnsKey: String

init(className: String, objectQuery: PFQuery, returnsKey: String) {
    self.objectQuery = objectQuery
    self.returnsKey = returnsKey
    super.init(className: className)
}

override func findObjectsInBackgroundWithBlock(block: PFQueryArrayResultBlock?) {
    objectQuery.getFirstObjectInBackgroundWithBlock { (result: PFObject?, error: NSError?) in
        if let error = error {
            block?(nil, error)
        } else if let array = result?[self.returnsKey] as? [PFObject] {
            block?(array, nil)
        } else {
            block?([], nil)
        }
    }
}

}

现在上面的类使用如下:

 override func queryForTable() -> PFQuery {
    let emptyQuery = PFQuery()
    guard let user = User.currentUser(),
      userQuery = User.query() else {
        return emptyQuery
    }
    let query = PFArrayQuery(className: "House", objectQuery: userQuery,
                             returnsKey: "favoriteHouses")
    userQuery.includeKey("favoriteHouses")
// this is the line which I am unable to translate.
    **userQuery.includeKey("favoriteHouses.landlord")**
    userQuery.whereKey("objectId", equalTo: user.objectId ?? "")
    return query
}

现在我的翻译代码是:

ParseQuery parseQuery = ParseQuery.getQuery("House");

    parseQuery.include("favoriteHouses");
    parseQuery.include("favoriteHouses.landlord");
    parseQuery.whereEqualTo("objectId",ParseUser.getCurrentUser().getObjectId());

我还在this页面上解释了我的情况:

请纠正我。

由于

0 个答案:

没有答案