2015-05-24 24 views
0

我想在我的应用程序中使用Parse(parse.com)来存储数据集成“投票”功能。 我的问题是,当我尝试发送投票++到服务器,它不会去。 这里是源代码:上传Int在背景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

好了,解决的办法是:

 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

感谢您帮助我!

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!)"; 
     } 
} 
+0

你好Rahul,你的代码不工作...我问自己,如果它不是因为“parseObject”,因为它不涉及任何类名或任何东西 – Antoine

+0

尝试修改后的代码。 –

+0

no still not not,but I tried with“parseObject!.setObject((votes!as?String)!,forKey:”votes“);”因为用你的代码我有一个错误:“可选类型字符串的值?不解开”,但已经感谢帮助我:) – Antoine