首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何将外部数据库中的数据填充到Swift中的UItableView

如何将外部数据库中的数据填充到Swift中的UItableView
EN

Stack Overflow用户
提问于 2018-04-23 10:58:21
回答 2查看 122关注 0票数 0

我正在尝试使用PHP脚本填充来自外部数据库的数据,我可以看到数据已在viewdidload()中接收。但是我看不到表视图中的数据。

我尝试使用断点,但没有成功,因为我的程序不能到达

代码语言:javascript
复制
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { ....}

你能建议我做得不对的地方吗?

代码语言:javascript
复制
import UIKit

class UsersViewController: UIViewController, UITableViewDataSource, UITableViewDelegate  {

    var data: NSArray = []

    @IBOutlet weak var listTableView: UITableView!

    override func viewDidLoad() {
        super.viewDidLoad()

        data = dataOfJson(url: "http://kpstudio18.com/app/select.php")
        print("data are as \(data)")
    }

    func dataOfJson(url: String) -> NSArray {
        var data = NSData(contentsOf: NSURL(string: url)! as URL)
        var error: NSError?
        var jsonArray: NSArray = try! JSONSerialization.jsonObject(with: data! as Data, options: .mutableContainers) as! NSArray
        return jsonArray
    }

    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        if data.count != 0 {
            return data.count
        } else {
            return 1
        }
    }

    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

        let cell: additionInfoCell = self.listTableView.dequeueReusableCell(withIdentifier: "customCell") as! additionInfoCell
        let maindata = (data[indexPath.row] as! NSDictionary)
        cell.name.text = maindata["name"] as? String
        cell.info.text = maindata["id"] as? String

        print("Cell Name is \(cell.name.text)")
        print("Cell Info (id) is \(cell.info.text)")
        return cell
    }
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-04-23 12:09:53

代码语言:javascript
复制
yourtableview_name.registerNib(UINib(nibName: "customCell", bundle: nil), forCellReuseIdentifier: "customCell")

viewdidload.if中尝试一下,它有效,请让我知道。

票数 2
EN

Stack Overflow用户

发布于 2018-04-23 16:32:38

您只是忘记了重新装入您的表。在您的viewDidLoad()方法中,添加以下行yourTableView.reloadData(),希望它能正常工作。

另外,检查一下你是否按照RB1509上面说的那样注册了"CustomCell“

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49972809

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档