JSON数据未在NSTableView中显示

时间:2016-09-22 18:43:32

标签: json swift macos cocoa nstableview

我对Swift还不熟悉,但我有NSTableView没有显示任何数据。我的JSON数据正在控制台中完美打印,我认为我的cellView会在textField显示我的所有值,但我什么都没收到。我已将Table设置为我的表格单元格视图'有一个标识符' cell'所以我相信它们是正确的。我没有在控制台中收到任何错误,但我的数据仍未显示。任何帮助将不胜感激。

import Cocoa

class ViewController: NSViewController, NSTableViewDataSource, NSTableViewDelegate {

@IBOutlet var tableView: NSTableView!

var values: NSArray = []

override func viewDidLoad() {
    super.viewDidLoad()

    get();


}


override var representedObject: Any? {
    didSet {

    }
}

func get(){

    let url = NSURL(string: "http://myurl")

    let data = NSData(contentsOf: url as! URL);

    values = try! JSONSerialization.jsonObject(with: data! as Data,options: JSONSerialization.ReadingOptions.mutableContainers) as! NSArray

    tableView.reloadData();


    print(values);

}

func numberOfRows(in tableView: NSTableView) -> Int {

    return self.values.count;
}

private func tableView(tableView: NSTableView, viewFor tableColumn: NSTableColumn?, row: Int) -> NSView? {

    let cellView = tableView.make(withIdentifier: "cell", owner: self) as! NSTableCellView

    cellView.textField!.stringValue = self.values.object(at: row) as! String


    return cellView
}

1 个答案:

答案 0 :(得分:0)

您是否确保您的表格视图知道它的委托和数据源?如果没有,请将其添加到viewDidLoad

{
  "name": "my_project",
  "version": "1.0.0",
  "description": "something ...",
  "main": "my_project.node.js",
  ... 
}