【问题标题】:Swift 2 - how to get data from Alamofire.responseJSONSwift 2 - 如何从 Alamofire.responseJSON 获取数据
【发布时间】:2015-12-02 18:03:25
【问题描述】:

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

  1. DNService.swift
  2. StoriesTableViewController.swift

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

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()
    }
}

我不知道如何在我的StoriesTableViewcontroller 中填写self.stories...

我尝试将 swiftyData 存储在 DNService 的 var 中,并在 StoriesTableViewCtler 中创建一个 getStoredSwiftyData(),但它也不起作用。

【问题讨论】:

    标签: ios swift api alamofire swifty-json


    【解决方案1】:

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

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

    【讨论】:

    • 谢谢你的回答,我试过了,但我有这个错误:“无法调用非函数类型的值'Response
    • 我已经怀疑这两个 response 对象存在术语冲突。你能把storiesForSection中的那个改成另一个名字吗?或者将第一个 response 对象分配给具有不同名称的局部变量。
    • 谢谢,就是这个! loadStories() 在另一个函数中,带有另一个名为“responses”的回调
    【解决方案2】:
       //Swift4
       import Alamofire
    

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

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

    【讨论】:

      猜你喜欢
      • 2021-10-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多