не может вызывать 'whereKey' с аргументом типа '(String, equalTo: String?!)'

Я получаю это сообщение об ошибке в этой строке этого кода:

findSweeter.whereKey("objectId", equalTo: sweet.objectForKey("sweeter")!.objectId)

Ошибка:

не может вызывать 'whereKey' с аргументом типа '(String, equalTo: String?!)'

Вот код, который я использовал в пути cellForRowAtiIndex для получения изображения профиля, имени профиля и содержимого для отображения в ячейке:

var findSweeter:PFQuery = PFUser.query()!
  findSweeter.whereKey("objectId", equalTo: sweet.objectForKey("sweeter")!.objectId)

  findSweeter.findObjectsInBackgroundWithBlock{
      (objects:[AnyObject]?, error:NSError?)->Void in

      if error == nil{
          let user:PFUser = (objects as! NSArray).lastObject as! PFUser
          cell.usernameLabel.text = user.username


          UIView.animateWithDuration(0.5, animations: {
              cell.sweetTextView.alpha = 1
              cell.timestampLabel.alpha = 1
              cell.usernameLabel.alpha = 1
              cell.profilePic.alpha  = 1
          })
      }
  }

Любое решение этой проблемы будет с благодарностью. Использование Xcode 6.3.2. Заранее спасибо!


person Shanikia Edwards    schedule 31.08.2015    source источник


Ответы (1)


Попробуйте развернуть необязательную переменную перед запросом.

if let sweeter: PFObject = sweet.objectForKey("sweeter") as? PFObject {
    var findSweeter:PFQuery = PFUser.query()!
    findSweeter.whereKey("objectId", equalTo: sweeter.objectId)
    findSweeter.findObjectsInBackgroundWithBlock {
        // ...
    }
}
person Russell    schedule 31.08.2015