0

I tried to use "Yoda Speak" API by Mashape in Swift. I will print the data from the API. I succeeded calling "response" method after "getData" method but my simulator is out in the "response" method. I know there're some similar questions, but I couldn't. Please give me some advices.

    func response(res: NSURLResponse!, data: NSData!, error: NSError!) {
    println("response")

    if error != nil {
        // If there is an error in the web request, print it to the console
        println(error.localizedDescription)
    } else {
        println("succeeded")
    }

    // simulator is out here.
    var json: NSDictionary = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.MutableContainers, error: nil) as NSDictionary

    for value in json {
        dispatch_async(dispatch_get_main_queue(), { () -> Void in
            println(value)
        })
    }
}

func getData() {

    println("getData")

    // URL.
    let url = NSURL(string: "https://yoda.p.mashape.com/yoda?sentence=You+will+learn+how+to+speak+like+me+someday.++Oh+wait.")!

    // URLRequest.
    var req = NSMutableURLRequest(URL: url)

    // header.
    req.setValue("jY0bEhHCBpmsh8j1mpA5p11tCJGyp1tok3Zjsn4ubbvNNp5Jt3", forHTTPHeaderField: "X-Mashape-Key")

    let connection: NSURLConnection = NSURLConnection(request: req, delegate: self, startImmediately: false)!

    // Connection to the server.
    NSURLConnection.sendAsynchronousRequest(req, queue: NSOperationQueue.mainQueue(), completionHandler: self.response)
    println("complete")
}

1 Answers1

1

I would give Alamofire a try. I know this also works well with SwiftyJSON. There is a great example on the GitHub page on how to request/receive a response with Alamofire.

Patrick Zawadzki
  • 456
  • 2
  • 6
  • 26