如何使用Alamofire和swift3在tableview中显示数据?

时间:2017-01-03 06:57:20

标签: ios swift swift3 alamofire

我得到了以下响应值数组:

["Mallard Point Trailer Court","Golddust","Hagler","McCosh Mill","Graystone","Old Jonesboro","Carlees Mobile Home Court","Denson","Blake","Inverness Cliffs"]

如何使用alamofire在我的tableview中加载这些数据?

这是我的代码

 let url = Constants.CityUrl + fullName
            print(url)
            Alamofire.request(url, method: .get).responseJSON { response in

                if let JSON = response.result.value {
                    print("JSON: \(JSON)")

                    let response = JSON as! NSArray
}

2 个答案:

答案 0 :(得分:1)

为了访问整个类中的数组,你需要像下面那样声明它是全局的,也喜欢swift“Array”而非“NSArray”,因为它有很多优点

var reponseArray = [String]

还可以从viewDidLoad

调用以下方法
func fetchInformation() {
let url = Constants.CityUrl + fullName
            print(url)
            Alamofire.request(url, method: .get).responseJSON { response in

                if let JSON = response.result.value {
                    print("JSON: \(JSON)")

                    reponseArray = JSON as! Array

         DispatchQueue.main.async {  
             tableView.reloadData()
            //reload on main thread
           }
     }
}

在表格视图中数据源方法使用reponseArray

中的信息

答案 1 :(得分:0)

在完成块之外添加一个变量并为其分配响应。 例如:

let arrResponse: [String]?

在tableView委托方法

func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return arrResponse.count
    }



func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
             var cell:UITableViewCell = self.tableView.dequeueReusableCellWithIdentifier("cell") as UITableViewCell

        cell.textLabel?.text = arrResponse[indexPath.row] as! String

        return cell
        }