错误:输入" UserAccView"不符合协议' UITableViewDataSource'

时间:2017-08-16 16:09:14

标签: ios function swift3 tableview

所以我试图添加从函数返回的一些数据,我只能从该函数内部访问该数据,所以我最终把表放在函数中但是在我这样做之后我收到了上面的错误。

有什么想法吗?

这是我的代码:

import Foundation

import UIKit

class UserAccView: UIViewController , UITableViewDataSource {



@IBAction func GetUserInfo(_ sender: UIButton) {



    guard let url = URL(string: "https://goollyapp.azurewebsites.net/api/v0.1/Goolly/User/218910182109") else{return}
        let session = URLSession.shared
        session.dataTask(with: url) { (data, response, error) in
            if let response = response {
            print (response)
            }
            if let data = data {
                let json = try? JSONSerialization.jsonObject(with: data, options: [])
                guard let data_array = json as? NSArray else
                {
                    return
                }
                for i in 0 ..< data_array.count
                {
                    if let data_object = data_array[i] as? NSDictionary
                {
                        if  let Body        = data_object["id"] as? String,
                            let InfoId = data_object["TransDate"] as? String,
                            let Title      = data_object["Debt"] as? String,
                            let UserId     = data_object["Crdit"] as? String,
                            let InfoType     = data_object["Desc"] as? String

                        {}
                    }
    }
    }
            func numberOfSections(in tableView: UITableView) -> Int {
                return 1
            }
            func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
                return (data?.count)!
            }
            func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
                var cell = UITableViewCell()
                cell.textLabel?.text = "cells"
                return cell
            }

    }.resume()
    }
}

1 个答案:

答案 0 :(得分:0)

为什么在Api Call中添加了dataSource方法?将这些方法写在GetUserInfo IBAction之外。

其次,现在要重新加载tableview。首先创建IBOutlet for tableview,当响应来自api时,您可以在填充data数组中的响应后重新加载tableview。

最后,请勿在{{1​​}}中使用var cell = UITableViewCell()这样的内容。它会冻结你的tableview。像这样使用它

cellForRowAt

希望它可以帮到你