【问题标题】:find Parse objects that match Pointer value?找到匹配指针值的解析对象?
【发布时间】:2016-02-25 03:14:22
【问题描述】:

我正在尝试编写一个 Swift 查询,它将获取 Avatar 表中与用户的头像指针列匹配的对象。以下查询不会提取任何结果:

var userAvatar = self.user["avatar"]
let avatarQuery = PFQuery(className: "Avatar")
avatarQuery.whereKey("objectId", equalTo: userAvatar)
avatarQuery.limit = 1
avatarQuery.findObjectsInBackgroundWithBlock{
    (results: [PFObject]?, error: NSError?) -> Void in

    if error != nil {
        print(error)
    } else if let results = results as? [PFObject]! {
        for result in results {

我认为问题在于 whereKey 子句正在寻找一个字符串,而 userAvatar 是一个 PFObject。我尝试将 PFObject 转换为 String 但这是不可能的。

我是不是想多了?如何获取与存储在 User -> avatar(Pointer) 中的 PFObject 匹配的 Avatar 对象?

谢谢!

编辑:感谢 Daniel,这是工作代码(我认为添加 includeKey 可能也有帮助):

let userAvatar = self.user["avatar"] as! PFObject
let avatarQuery = PFQuery(className: "Avatar")
avatarQuery.whereKey("objectId", equalTo: userAvatar.objectId!)
avatarQuery.includeKey("avatar")
avatarQuery.limit = 1
avatarQuery.findObjectsInBackgroundWithBlock{
    (results: [PFObject]?, error: NSError?) -> Void in

        if error != nil {
            print(error)
        } else if let results = results as? [PFObject]! {

            for result in results {

【问题讨论】:

    标签: ios swift parse-platform swift2


    【解决方案1】:

    所以我认为您的问题是您不应该将字符串与PfObject 进行比较,对象不是字符串,但对象的价格可能是字符串,因此您应该将object.id 之类的内容与细绳。如果这是有道理的。

    【讨论】:

    • 感谢您的回复!我该怎么做呢? avatarQuery.whereKey("objectId", equalTo: userAvatar.objectId) 不起作用,因为 equalTo 必须是 AnyObject
    • 您可以使用AnyObject(userAvatar.objectId)强制将其强制转换为anyObject
    • avatarQuery.whereKey("objectId", equalTo: userAvatar.objectId) 可能会有所帮助
    • 嗯...我试过AnyObject(userAvatar.objectId),但我得到'AnyObject' cannot be constructed because it has no accessible initializers
    • 没关系,这行得通!我不需要沮丧。我会发布更新的代码
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多