如何从阿拉莫火中返回价值

如何从阿拉莫火中返回价值

我正在通过一个API调用url,该API是我使用Swive创建的,如下所示:

class API {

  let apiEndPoint = "endpoint"
  let apiUrl:String!
  let consumerKey:String!
  let consumerSecret:String!

  var returnData = [:]

  init(){
    self.apiUrl = "https://myurl.com/"
    self.consumerKey = "my consumer key"
    self.consumerSecret = "my consumer secret"
  }

  func getOrders() -> NSDictionary{
    return makeCall("orders")
  }

  func makeCall(section:String) -> NSDictionary{

    let params = ["consumer_key":"key", "consumer_secret":"secret"]

    Alamofire.request(.GET, "\(self.apiUrl)/\(self.apiEndPoint + section)", parameters: params)
        .authenticate(user: self.consumerKey, password: self.consumerSecret)
        .responseJSON { (request, response, data, error) -> Void in
            println("error \(request)")
            self.returnData = data! as NSDictionary
    }
    return self.returnData  }}

我在我的UITableViewController使用SwiftyJSON库填充表。但是我的returnData从API始终是空的。AlomoFire调用没有问题,因为我可以成功地检索值。我的问题是我应该如何携带这个data转到我的桌景控制器?

var api = API()api.getOrders()println(api.returnData) // returnData is empty


GCT1015
浏览 422回答 3
3回答

茅侃侃

来自阿拉莫火灾自述机构(重点后加):AlamoFire中的网络是异步完成的。对于不熟悉异步编程概念的程序员来说,异步编程可能会让他们感到沮丧,但是这样做是有很好的理由的。而不是阻止执行以等待来自服务器的响应,而是指定一个回调来处理接收到的响应。请求的结果仅在响应处理程序的作用域中可用。任何取决于从服务器接收的响应或数据的执行都必须在处理程序中完成。.
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

iOS