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 "="비디오 링크 "; } ) ' –