将Int在后台上传到Parse.com

时间:2015-05-24 08:53:08

标签: ios swift parse-platform

我正在尝试使用Parse(parse.com)在我的应用中集成“投票”功能来存储数据。 我的问题是,当我尝试将++投票给服务器时,它不会去。 这是源代码:

型号:

class PARSESearch {
var votes:Int?

init(pfObject: PFObject) {
self.votes = pfObject["votes"] as? Int
}

func toPFObject() -> PFObject {
let planeObject = PFObject(className: "Search")
planeObject["votes"] = votes
return planeObject
}

并且在viewController的函数中实现:

var parseObject:PFObject?

        if(parseObject != nil) {
        if var votes:Int? = parseObject!.objectForKey("votes") as? Int {
            votes!++

            //parseObject!.setObject(votes!, forKey: "votes");
            parseObject!.setObject(votes!, forKey: "votes");
            parseObject!.saveInBackground();

            votesLabel?.text = "\(votes!)";
        }
    }

问题可能来自于我只有parseObject:PFObject?它不是指任何类别或其​​他任何东西?

我希望你能帮助我,我14岁,所以如果你能提供源代码,它真的会帮助我:)。

亲切的问候,

2 个答案:

答案 0 :(得分:0)

当你设置对象时这次投票是int类型,而它应该是一个对象。尝试修改代码并告诉我它是否有效。

if(parseObject != nil) {
        if var votes:Int? = parseObject!.objectForKey("votes") as? Int {
            votes!++

            //parseObject!.setObject(votes!, forKey: "votes");
            parseObject!.setObject(votes! as? String, forKey: "votes");
            parseObject!.saveInBackground();

            votesLabel?.text = "\(votes!)";
        }
}

答案 1 :(得分:0)

好的,所以解决方案是:

       var query = PFQuery(className: "Search")
    query.getObjectInBackgroundWithId(parseSearch.objectId) {
        (votes: PFObject?, error: NSError?) -> Void in
        if error != nil {
            println(error)
        } else {
            if let votes = votes {
                votes.incrementKey("votes")
                votes.saveInBackground()
            }
        }
    }

您可以在parse.com/docs/ios/guide

上找到对象,查询....

感谢您的帮助!