Problem mit Befüllung eines TableViews

  • Problem mit Befüllung eines TableViews

    Oft gemacht in Objective-C und wieder gescheitert in Swift... ?(

    Also, bei Programmstart lese ich alle zur Verfügung stehenden Daten ein und zeige diese - gruppiert - in einem Outlineview. Das funktioniert mittels TreeController sehr gut.
    (Bild 1 und Bild 2)

    Anschliessend sollen durch Anklicken die Elemente ausgewählt werden, mit denen eine Rechnung durchgeführt wird.
    Ich generiere quasi ein neues Array (selectedDyes), das eine Teil des ganzen (allDyes) darstellt beim Auswahlprozess :

    Quellcode

    1. func outlineViewSelectionDidChange(notification: NSNotification) {
    2. var selected : NSIndexSet
    3. var first : Int
    4. //Rücksetzen vor jeder Neuselektierung
    5. selectedDyes.removeAllObjects()
    6. selected = outlineview.selectedRowIndexes
    7. first = selected.firstIndex
    8. for _ in selected {
    9. if first != NSNotFound && selected.count <= 8 {
    10. selectedDyes.addObject((outlineview.itemAtRow(first)?.representedObject)!)
    11. first = selected.indexGreaterThanIndex(first)
    12. }
    13. }
    14. var txt : String = selectedDyes.objectAtIndex(0).valueForKey("name") as! String
    15. NSLog("Name des Farbstoffes : %@", txt)
    16. }
    Alles anzeigen
    Der Part mit var txt hat nur dazu gedient, um zu verifizieren, ob die richtigen Objekte kopiert werden. Dies ist der Fall.

    Nun füge ich im IB einen Array-Kontroller ein, mache die Bindings zu o.a. selectedDyes. In der Tableview, die die ausgewählten Produkte anzeigen soll, weise ich der ersten Kolumne den Model Key Path "name" zu bei der Binding zum Array-Kontroller.

    Dennoch bleibt die TableView leer.


    Speichere ich selectedDyes in ein plist und weise anschliessend dem selectedDyes den Inhalt der plist Datei zu, füllt sich das TableView hingegen.


    Quellcode

    1. selectedDyes.writeToFile("/Volumes/BLAU-4GB/dummy1.plist", atomically: true)
    2. self.selectedDyes = NSMutableArray(contentsOfFile:"/Volumes/BLAU-4GB/dummy1.plist")!
    Ich verstehe nicht, was ich falsch mache?!


    Hans
    Dateien
    • bild 1.jpg

      (76,95 kB, 117 mal heruntergeladen, zuletzt: )
    • Bild 2.jpg

      (46,05 kB, 128 mal heruntergeladen, zuletzt: )
  • Habs gefunden, im Prinzip fehlt eine Zeile Code, die indirekt wohl dasselbe bewirkt als der plist Umweg

    Quellcode

    1. self.selectedDyesArray = self.SelectedDyes
    Und dieses NSArray selectedDyesArray wird mit der TableView gebunden und dann erscheinen auch die Listenelemente in der tableview. :)

    Ich verstehe nur nicht, warum dieser "Umweg" nötig ist-