我正在尝试使用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岁,所以如果你能提供源代码,它真的会帮助我:)。
亲切的问候,
答案 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
上找到对象,查询....感谢您的帮助!