Swift 2 - 如何从 Alamofire.responseJSON 获取数据

问题描述 投票:0回答:2

我正在阅读设计+代码课程,我有 2 个文件:

  1. DNService.swift
  2. StoriesTableViewController.swift

形成 DNService,我从 DesignerNews API 加载数据,这是获取数据的函数:

static func storiesForSection(section: String, page: Int, response: (JSON) ->()) {

    let urlString = baseURL + ResourcePath.Stories.description + "/" + section
    let parameters = [
        "page": String(page),
        "client_id": clientID
    ]



    Alamofire.request(.GET, urlString, parameters: parameters).responseJSON { (response) -> Void in
        let swiftyData = JSON(response.result.value ?? [])
        //print(swiftyData)
    }


}

StoriesTableViewController
中,我调用函数
storiesForSection()
但它不检索数据:

var stories: JSON! = []

func loadStories(section: String, page: Int) {
    DNService.storiesForSection(section, page: page) { (JSON) -> () in
        self.stories = JSON["stories"]
        self.tableView.reloadData()
    }
}

我不知道如何在我的

self.stories
中填写
StoriesTableViewcontroller
...

我尝试将 swiftyData 存储在 DNService 的 var 中,并在

getStoredSwiftyData()
中创建
StoriesTableViewCtler
,但它也不起作用。

ios swift alamofire swifty-json
2个回答
1
投票

storiesForSection:page:response
有回调函数,只需以 JSON 对象作为参数调用即可。

Alamofire.request(.GET, urlString, parameters: parameters).responseJSON { (response) -> Void in
    let swiftyData = JSON(response.result.value ?? [])
    response(swiftyData)
}

0
投票
   //Swift4
   import Alamofire

//仅从.get方法获取数据 获取数据后,您可以将其转换为合适的格式

   let url2:URL=URL(string: values)!
    Alamofire.request(url2).response 
     { response in
        if(response.data != nil)
          {

           }
          else{
            print(response.error)

               }
 }
© www.soinside.com 2019 - 2024. All rights reserved.