Swift - 更新到Parse SDK 1.7.4后 - 错误消息

时间:2015-06-03 10:48:42

标签: ios swift parsing pfuser

我对Swift和Parse相当新,但这是我的问题: 我下载了一个简单的Swift / Parse应用程序,对它进行了调整,它工作正常,直到我决定更新现有的Parse SDK。 我收到错误的错误,我无法让它工作。

我无法再为当前用户分配任何内容:

即:

currentuser["location"] = PFGeoPoint(location: location)
currentuser["interestedCategory"] = self.pickerChoice
currentuser["locationLimit"] = Int(locationSlider.value)

我收到滚动错误(也适用于Int等)

  

SettingViewController.swift:157:50:无法分配类型的值   '的NSString&#39!;类型为' AnyObject?

的值

'

甚至

self.pickerChoiceRow = currentuser.objectForKey("interestedCategoryRow") as! Int

我收到以下错误消息:

  

SettingViewController.swift:82:36:可选类型的值' PFUser?'   没有打开;你的意思是使用'!'或者'?'?

这也不再适用了:

if currentuser["job1_objectId"] != nil {

......

} 

因为我收到以下错误:

  

OverviewInsertViewController.swift:185:12:二元运算符'!='不能   应用于任何类型' AnyObject的操作数?'和' nil'

这也造成了问题??!

var 1_objectId:NSString! = ""

self.1_objectId = currentuser["job1_objectId"] as! NSString
                    var query_jobs = PFQuery(className: "Jobs")
                    query_jobs.getObjectInBackgroundWithId(self.1_objectId as String) {
                        (object: PFObject!, error: NSError!) -> Void in
                        if (error == nil) {

对于这些行,我收到以下错误:

  

OverviewInsertViewController.swift:144:77:无法赋值   键入' NSString'值为' NSString!'

     

OverviewInsertViewController.swift:146:32:无法调用   ' getObjectInBackgroundWithId'使用类型'的参数列表(String,   (PFObject!,NSError!) - >空隙)'

请帮助我,旧的Parse SDK一切正常吗?!

1 个答案:

答案 0 :(得分:0)

对于第一点,当尝试更新对象的值(例如,位置)时,我使用了以下代码:

    var query:PFQuery = PFQuery(className:"Location")
    query.whereKey("user", equalTo: PFUser.currentUser()!)
    //query Parse
    query.getFirstObjectInBackgroundWithBlock {
        (object: PFObject?, error: NSError?) -> Void in
        if error != nil || object == nil {
            println("The getFirstObject request failed.")
        } else if let object = object{
            // The find succeeded.
            println("Successfully retrieved the object.")

            object["location"] = point
            object.saveInBackground()
        }

    }

请注意"否则如果让object = object",添加该条件可以帮助我解决您提到的第一个错误。

希望它有用。