2015-06-03 5 views
0

Я довольно новичок в Swift и Parse, но вот моя проблема: Я загрузил простое приложение Swift/Parse, адаптировал его, и он работал нормально, пока я не решил для обновления существующего Parse SDK. Я получаю ошибки над ошибками, и я не могу заставить его работать.Swift - После обновления до Parse SDK 1.7.4 - Сообщения об ошибках

Я не могу назначить ничего CurrentUser больше:

т.е.

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

я получать ошибку прокатки (также для Int и т.д.)

SettingViewController.swift:157:50: Cannot assign a value of type 'NSString!' to a value of type 'AnyObject?

'

или даже

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

Я получаю следующее сообщение об ошибке:

SettingViewController.swift:82:36: Value of optional type 'PFUser?' not unwrapped; did you mean to use '!' or '?'?

Кроме того, это не работает больше:

if currentuser["job1_objectId"] != nil { 

...... 

} 

Потому что я получаю следующее сообщение об ошибке:

OverviewInsertViewController.swift:185:12: Binary operator '!=' cannot be applied to operands of type 'AnyObject?' and '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: Cannot assign a value of type 'NSString' to a value of type 'NSString!'

OverviewInsertViewController.swift:146:32: Cannot invoke 'getObjectInBackgroundWithId' with an argument list of type '(String, (PFObject!, NSError!) -> Void)'

Пожалуйста, помогите мне, все работало хорошо со старым SDK ?! Разбор

ответ

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() 
     } 

    } 

Пожалуйста, обратите внимание на «другое, если позволить объект = объект», добавив, что условие помогло мне с первой ошибкой, о которой вы говорили.

Надеюсь, что он служит.

 Смежные вопросы

  • Нет связанных вопросов^_^