我正在尝试实现类似的功能。我有一个标签和一个按钮。如果按下该按钮,则应向 Parse 添加一票,标签将检索投票数。但它不适用于我的代码。看起来我需要初始化parseObject但我不知道如何。我的单元格代码如下。谢谢。我已经坚持了几天这个问题。
import UIKit
import ParseUI
import Parse
var parseObject:PFObject?
var votes = [PFObject]()
class NewCollectionViewCell: UICollectionViewCell {
var parseObject = PFObject(className: "Posts")
@IBOutlet weak var postsImageView: PFImageView!
@IBOutlet weak var postsLabel: UILabel!
@IBOutlet weak var votesLabel:UILabel?
override func awakeFromNib() {
super.awakeFromNib()
// Initialization code
postsLabel.textAlignment = NSTextAlignment.Center
}
@IBAction func vote(sender: AnyObject) {
if (parseObject != nil) {
if let votes = parseObject!.objectForKey("votes") as? Int {
parseObject!.setObject(votes + 1, forKey: "votes")
parseObject!.saveInBackgroundWithTarget(nil, selector: nil)
votesLabel?.text = "\(votes + 1) votes"
}
else {
parseObject!.setObject(1, forKey: "votes")
parseObject!.saveInBackgroundWithTarget(nil, selector: nil)
votesLabel?.text = "1 votes"
}
}
}
}
答案 0 :(得分:0)
首先,您已经实现了目标方法。在传入nil
时,我不确定是否会保存对象。为了使其保持一致,最好包括target
和selector
,因为它还会告诉您对象是否已成功保存。您还可以转到 Parse 信息中心,检查是否已成功保存。
是的,你还没有实例化你的对象。否则,您的if-else
语句刚刚执行并且什么也没做。如果您尝试调试它,parseObject实际上是nil
。在 Parse 中,有几种方法可以做,文档为您提供所有内容:https://parse.com/docs/ios/api/Classes/PFObject.html#//api/name/objectWithClassName: