Ich werde nicht in der Lage sein, um einen Wert zurückzugeben, mit Alamofire in Swift

Den aktuellen code ein, ich habe doens ' T scheinen, etwas zurückzugeben, ich kann nicht herausfinden, was das Problem verursacht.

func getQuests(category: NSString, count: Int) -> NSArray {
    var quests = NSArray()

    Alamofire.request(.GET, apiUrlString, parameters: ["category": category, "count": count])
        .responseJSON { (request, response, json, error) in
            dispatch_async(dispatch_get_main_queue(), {
                quests = json as NSArray
            })
    }

    println(quests)  #=> ()

    return quests
}

Weiß jemand, wie das Problem zu lösen bin ich?

[Update]: Dies ist der status.

Schauen Sie bitte auf der fünften und acht Zeilen.
Ich kann den Auftrag nicht bekommt, um quests zu arbeiten.

var quests = NSArray()

getQuests("normal", count: 30, completionHandler: {
    quests in
        self.quests = quests
    })

println(self.quests)  #=> ()

func getQuests(category: NSString, count: Int, completionHandler: (NSArray -> Void)) {
    var quests = NSArray()

    Alamofire.request(.GET, apiUrlString, parameters: ["category": category, "count": count])
        .responseJSON { (request, response, json, error) in
            dispatch_async(dispatch_get_main_queue(), {
                quests = json as NSArray
                completionHandler(quests)
            })
    }
}

Dank.

  • Alamofire ist asynchron, wenn Sie drucken quests Sie noch nicht Ihre responseJSON.
  • mögliche Duplikate von Wörterbuch ist nicht konvertierbar Void
  • Ja, dies ist eine doppelte, aber die Frage tatsächlich besser beschreibt, das problem bei der hand 😉
Schreibe einen Kommentar