2016-09-22 5 views
0

私はかなり新しいSwiftですが、NSTableViewには自分のデータが表示されていません。私のJSONデータがコンソールに完全に印刷されていて、私のcellViewが私のtextFieldに表示されると思ったが、何も戻ってこなかった。私はTableを「テーブルセルビュー」に「セル」という識別子がある場所に設定しているので、正しくリンクされていると思います。コンソールにエラーは表示されませんが、データは表示されません。どんな助けでも大歓迎です。JSONデータがNSTableViewに表示されない

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 
} 
+0

にこれを追加しましたメインスレッドでReload Tableview –

+0

デリゲートメソッドが呼び出されていますか?テーブルは空の場合でも期待される行数を持っていますか? –

+0

行の数は、私のnumbersOfRows関数で表される値の数に基づいています –

答えて

0

あなたのテーブルビューは、それのデリゲートとデータソースを知っていることを確認してください?、そうでない場合は、あなたが直接ので、より良いデータを解析するGCDを使用したデータを解析するため、そのおそらくのviewDidLoad

self.tableView.delegate = self 
self.tableView.dataSource = self 
+0

私はこれらの行を追加し、私の結果に変更はありませんでした。私のコンソールがデータをJSON形式で表示している間、私のデータは私のテーブルに表示されていません。 –

+0

あなたは私にコンソールプリントを見せてもらえますか? –

+0

「( { 特色= 0; ID = 1; "PRODUCT_DESCRIPTION" = "テスト説明"; "product_download" = "ダウンロードリンク"; "product_image" =イメージ; "PRODUCT_NAME" =「レイヴン「; 『PRODUCT_PRICE』 = 『29.99』; 『product_video』 = 『ビデオリンク』; } ) 「 –

関連する問題