EXEC_BAD_INSTRUCTION при попытке получить изображение из Parse

Я получаю сообщение об ошибке в следующей строке: "let imgFile = object [" imageFile "] as PFFile"

Код:

func getRightLevelInfo() {
    var query = PFQuery(className: "userstatus")
    query.whereKey("username", equalTo: PFUser.currentUser().username)
    query.findObjectsInBackgroundWithBlock {
        (objects: [AnyObject]!, error: NSError!) -> Void in
        if error == nil {
            println("Found something")
            for object in objects {
                println(object.objectId)

                let lastSuccessfulLevel = object["lastSuccessfulLevel"] as Int
                let nextLevel = lastSuccessfulLevel + 1
                let score = object["score"] as Int

                println("lastSuccessfulLevel = " + String(lastSuccessfulLevel) + ", Score = " + String(score))

                var queryLevel = PFQuery(className: "puzzledata")
                queryLevel.whereKey("lastleveldone", equalTo: String(nextLevel))
                queryLevel.findObjectsInBackgroundWithBlock {
                    (levels: [AnyObject]!, error: NSError!) -> Void in
                    if error == nil {

                        for level in levels {
                            self.wordAnswer = level["wordAnswer"] as String
                            self.wordJumbled = level["wordJumbled"] as String

                            println("For this level, wordAnswer = " + self.wordAnswer + ", wordJumbled = " + self.wordJumbled)

                            let imgFile = object["imageFile"] as PFFile


                            imgFile.getDataInBackgroundWithBlock({
                                (imageData: NSData!, error: NSError!) -> Void in
                                if (error == nil) {
                                    let image = UIImage(data:imageData)?
                                    println("Got Image Successfully")

                                } else {
                                    println("ERROR in getting image")
                                }

                            })//getDataInBackgroundWithBlock - end

                        }

                    } else {
                        println("%@", error) //couldn't find level data
                    }
                }


            }
        }
        else {
            println("%@", error)
        }
    }
}

Я получаю ошибку во время выполнения:

введите описание изображения здесь

Хотя ошибка находится в этой строке «let imgFile = object [" imageFile "] as PFFile», вы также можете видеть, что класс базы данных синтаксического анализа действительно имеет это поле с таким же именем » imgFile "

введите описание изображения здесь


person user1406716    schedule 10.04.2015    source источник
comment
Почему этот код находится внутри цикла в другом блоке завершения запроса?   -  person Wain    schedule 10.04.2015
comment
потому что я хочу сначала получить lastSuccessfulLevel и на основе этого получить правильное изображение для нужного уровня. Вот почему у меня есть вложенный блок завершения. Есть ли альтернативный способ добиться этого?   -  person user1406716    schedule 10.04.2015
comment
так изображение на уровне?   -  person Wain    schedule 10.04.2015
comment
да. Изображение находится в таблице puzzledata класса Parse / db. По сути, проблема в том, что ... получить одно число (lastSuccessfulLevel) из одной таблицы Parse и на основе этого найти другую информацию (т.е. imgFile) из другого класса.   -  person user1406716    schedule 10.04.2015
comment
ааа, теперь я вижу проблему, большое вам спасибо. он должен быть level [imageFile] вместо object [imageFile]. Я не использую свой Mac, чтобы попробовать это сейчас, но сделаю это сегодня вечером и помечу вас как ответ. Это должно быть так. Еще раз спасибо (это то, что делает с вами копипаст)   -  person user1406716    schedule 10.04.2015


Ответы (1)


Похоже на опечатку, где нужно заменить

let imgFile = object["imageFile"] as PFFile

с участием

let imgFile = level["imageFile"] as PFFile
person Wain    schedule 10.04.2015