Приведение из '[PFObject]' к несвязанному типу 'int' всегда терпит неудачу [Swift]

Я пытаюсь поместить в переменную свой PFObject (я использую Parse):

func retrieveScore() {


    var query:PFQuery = PFQuery(className: "Score")


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


        for varScore in objects! {
            let scoreExtract:Int? = (varScore as? [PFObject]) as? Int
        }
    }
}

Но это дает мне эту ошибку: «Приведение из '[PFObject]' к несвязанному типу 'int' всегда терпит неудачу.

Как я могу извлечь объект в переменную? Мне нужен массив?

Спасибо.


person Luca Alberto    schedule 13.05.2015    source источник
comment
Что держит vaeScore?   -  person Amit89    schedule 13.05.2015


Ответы (1)


Что вы делаете, это сначала конвертируете varScore в Array из PFObject, а затем конвертируете это Array в Int. Как можно преобразовать Array в Int?

Если объекты содержат Array из PFObject, тогда

func retrieveScore() {
   var query:PFQuery = PFQuery(className: "Score")
   query.findObjectsInBackgroundWithBlock { (objects:[AnyObject]?, error:NSError?) -> Void in

      for varScore in objects! {
          let score = varScore as? PFObject
          let youeIntPropertyValue = score.someIntProperty// a property in Score class/struct.
      }
   }
}
person Amit89    schedule 13.05.2015
comment
@ Admit89 Я не понимаю, что я должен здесь написать: let youeIntPropertyValue = score.someIntProperty - person Luca Alberto; 13.05.2015
comment
Я не знаю целочисленного свойства внутри класса Score. С точки зрения читателя, я только что написал. Вам нужно заменить его своим свойством Int. - person Amit89; 13.05.2015
comment
Можете ли вы сделать пример того, каким должно быть свойство Int? Класс Score содержит значение Int! не могли бы вы сделать мне пример, написав кодовую строку? - person Luca Alberto; 13.05.2015
comment
Вы можете разместить здесь свой класс Score? - person Amit89; 13.05.2015
comment
var playerScore: PFObject = PFObject (className: Score) playerScore [Player1] = 1 playerScore.saveInBackgroundWithBlock {... - person Luca Alberto; 13.05.2015
comment
@ Admit89, ты про этот класс, верно? У вас достаточно информации? - person Luca Alberto; 13.05.2015
comment
Нет, из приведенного выше кода может быть нужно сделать, например, score [Player1] или score.Player1 - person Amit89; 13.05.2015
comment
let youeIntPropertyValue = score [Player1] или let youeIntPropertyValue = score.Player1 - person Amit89; 13.05.2015