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
да Изображението е на таблицата с озадачени данни на Parse class/db. По принцип проблемът е ... вземете едно число (lastSuccessfulLevel) от една таблица за анализ и въз основа на това потърсете друга информация (т.е. imgFile) от друг клас.   -  person user1406716    schedule 10.04.2015
comment
аа сега виждам проблема, много ви благодаря. трябва да бъде level[imageFile] вместо object[imageFile]. Не съм на моя Mac, за да опитам това сега, но ще го направя тази вечер и ще ви маркирам като отговор. Това трябва да е. Благодаря ви отново (това прави с вас copy paste)   -  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