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)
}
}
}
我正在构建一个具有以下 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)
}
}
}