Swift 2/ 解析如果PFUser id在Likes中相同Class

Swift 2/ Parse If PFUser id is the same in Likes Class

我正在构建一个具有以下 classes

的应用

objectId

用户名

ObjectId

配方名称

配方文件

UploadedByUser(指向 class 用户的指针)

LikedByUser(指向 class 用户的指针)

LikedRecipe(指向 class 食谱的指针)

因此,如果用户已经喜欢了一个食谱,则单元格内的按钮图像应具有特定的 BackgroundImage,如果没有,则应具有不同的图像。我试过的是这个

let likesClassy = PFObject(className: LIKES_CLASS_NAME)
let currentUser = PFUser.currentUser()

if likesClassy[LIKES_LIKED_BY] === currentUser! {
    let imgLiked = UIImage(named: "likedButt") as UIImage!
    cell.likeOutlet.setBackgroundImage(imgLiked, forState: UIControlState.Normal)


} else {

    let imgUnLiked = UIImage(named: "likeButt") as UIImage!
    cell.likeOutlet.setBackgroundImage(imgUnLiked, forState: UIControlState.Normal)

}

我在 collectionView 中有这段代码,我在其中加载了食谱有多少喜欢等等。 我附上下面 parse.com class 中的图片

所以在 if 语句中,我想说的是,如果当前用户等于 Likes class 的用户指针,那么按钮的背景图像应该是 likeButt,否则应该像 Butt.

但这行不通,我不明白为什么。 有什么想法吗?

更新。我附上你满满的赞class

您没有在 Parse 服务器中获取对象。您应该使用一些谓词选项获取对象。这是您应该使用的功能。它看起来是您的 currentUser 和您的 Parse 中的 LIKES_LIKED_BY 行。如果您的 LIKES_LIKED_BY 行有一个 currentUser,它会获取用户。

    func getLikedUsers() {
    let user = PFUser.currentUser()
    let query = PFQuery(className: "LIKES_CLASS_NAME")
    query.whereKey("LIKES_LIKED_BY", equalTo: user!)
    query.findObjectsInBackgroundWithBlock() {
        (let fetchedObjects, error) in
        if error == nil {
            // Query succeed.
            if fetchedObjects?.isEmpty == false {
                //If your currentUser already liked.
                if let fetchedUsers = fetchedObjects as? [PFUser] {
                    for fetchedUser in fetchedUsers {
                        print(fetchedUser.username)
                        // You got the users Do someting with your liked users.
                    }
                }
            } else {
                // Your user didn't liked
            }
        } else {
            // Parse Query fail. Do someting with error.
            print(error?.localizedDescription)
        }
    }
}