数据未使用 Alamofire + SwiftyJSON 加载到 UITableView

Posted

技术标签:

【中文标题】数据未使用 Alamofire + SwiftyJSON 加载到 UITableView【英文标题】:Data not load to UITableView with Alamofire + SwiftyJSON 【发布时间】:2016-11-06 14:14:03 【问题描述】:

在我的 ios 应用程序中,我使用 Alamofire 进行休息请求,使用 SwiftyJSON 进行解析。其余的 url 正在工作,我从服务器获取所有数据,我在控制台中打印它。但我无法使用 UITableView 填充该数据。我没有收到任何错误,项目编译并运行没有任何问题,但表格视图为空。这是我的简单代码:

var contracts = [Contract]()

override func viewDidLoad() 
    super.viewDidLoad()

    getContracts(contractSearchCriteria: ContractSearchCriteria())



// MARK: - Table view data source

override func numberOfSections(in tableView: UITableView) -> Int 
    return 0


override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int 
    if (contracts.count != 0) 
        return contracts.count
    
    return 0


override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell 
    let cell = tableView.dequeueReusableCell(withIdentifier: "contractCell", for: indexPath)

    let contract = self.contracts[indexPath.row]

    cell.textLabel?.text = contract.insuredPersonFullName
    cell.detailTextLabel?.text = contract.companyName

    return cell

这是 getContracts 方法:

func getContracts(contractSearchCriteria : ContractSearchCriteria) 
    let params : Parameters = ["insuredPersonName": contractSearchCriteria.insuredPersonName]

    Alamofire.request("\(Constants.restURL)getContracts", method: .post, parameters: params, encoding: JSONEncoding.default).validate().responseJSON(completionHandler: response in

        switch (response.result) 
        case .success(let value):
            let json = JSON(value)
            let result = Result(json: json)
            print(result.isSuccess)

            for data in json["data"].arrayValue 
                print(data)
                self.contracts.append(Contract(json: data))
            
            self.tableView.reloadData()
        case .failure(let error):
            print(error)
        


    )


我在 Xcode 8 中使用 swift 3,以及带有 SwiftyJSON 的最新 Alamofire。我的代码有什么问题?我找不到任何解决方案。

【问题讨论】:

【参考方案1】:
override func numberOfSections(in tableView: UITableView) -> Int 
    return 1

【讨论】:

以上是关于数据未使用 Alamofire + SwiftyJSON 加载到 UITableView的主要内容,如果未能解决你的问题,请参考以下文章

Alamofire JSON 请求未从服务器中提取数据

表视图数据未在 Alamofire 发布请求调用 swift 3 中显示

Alamofire:参数未传递给服务器

var 请求:Alamofire.Request?使用未声明类型的 Alamofire

Alamofire,使用未声明的类型

使用未解析的标识符 'json' (Swift 3) (Alamofire)