在解析中初始化对象

时间:2015-07-29 21:11:44

标签: ios swift parse-platform

我正在尝试实现类似的功能。我有一个标签和一个按钮。如果按下该按钮,则应向 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"
            }
        }
    }
}

1 个答案:

答案 0 :(得分:0)

首先,您已经实现了目标方法。在传入nil时,我不确定是否会保存对象。为了使其保持一致,最好包括targetselector,因为它还会告诉您对象是否已成功保存。您还可以转到 Parse 信息中心,检查是否已成功保存。

是的,你还没有实例化你的对象。否则,您的if-else语句刚刚执行并且什么也没做。如果您尝试调试它,parseObject实际上是nil。在 Parse 中,有几种方法可以做,文档为您提供所有内容:https://parse.com/docs/ios/api/Classes/PFObject.html#//api/name/objectWithClassName