Frage

ich habe ein NSTableView mit zwei Spalten und einer Datenquelle, die sie mit Daten ausfüllt. Dieser Teil funktioniert.

Wie bekomme ich Daten (NSString Format) aus dem NSTableView? Ich kann die ausgewählte Reihe aber bekommen NSTableView Es scheint keine Methoden zum Zugriff auf Daten zu haben.

Das Erhalten der Daten aus meiner Datenquelle scheint nutzlose Daten zurückzugeben (Typ ID und NSLog() und NSRunAlertPanel() Beide behaupten, dass die Daten nicht vom Typ NSString.

Was ist der einfachste Weg, um Daten von einem zu erhalten? NSTableView?

Aktualisieren:

Es stellt sich heraus, warum das Erhalten von Daten aus meiner Datenquelle fehlgeschlagen ist NSString Teil eines Teils sein NSArray in dem tableView() Methode.

Meine Eingabedatei enthält Zeilen, die ich für die Spalten in meiner Tabellenansicht geteilt habe. Das NSTableView Ruft die richtigen Daten ab, aber wenn ich das rufe tableView() Methode selbst, ich stoße auf eine Exc_bad_access Fehler, von dem ich annehme, dass es mit Speicherverwaltung zu tun hat.

Ein weiteres Update:

Es war keine Speicherverwaltung. Es war die Unfähigkeit meiner Anwendung, die zu identifizieren NSTableColumn es wollte. Ich habe eine zweite Methode geschrieben, mit der ich manuell auf Daten zugreifen kann, die ein INT für die Spalte und nicht für a NSTableColumn Und das hat funktioniert.

War es hilfreich?

Lösung

Es ist ein Verstoß gegen das MVC -Paradigma, Ihre Tabelle (eine Ansicht) als Ort zum Speichern Ihrer Daten (Modell) zu verwenden. Sie sollten in der Lage sein, den Wert aus Ihrer Datenquelle genauso zu erhalten wie die Tabellenansicht. Wofür macht Ihr Code für Ihr Code? tableView:objectValueForTableColumn:row: Tun Sie die Daten?

Wenn Ihre Tabelle bearbeitbar ist, erhalten Sie Anrufe aus der Tabellenansicht auf tableView:setObjectValue:forTableColumn:row: Damit Sie Ihre Datenquelle angemessen ändern können.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top