我对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一切正常吗?!
答案 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",添加该条件可以帮助我解决您提到的第一个错误。
希望它有用。