NSTableView einstieg

  • glaube ich gern dass es bei dir ein 10-zeiler ist aber für einen anfänger ist das ein dicker brocken!

    Gerade einen Anfänger sollte man davor warnen, gleich einen ganz falschen Weg einzuschlagen. Der kann das nämlich am wenigsten beurteilen.

    auch wenn er 100 spalten und 100 arrays verwendet dann ist es noch kein fehler (aber alles andere als gut ;-))

    Doch, ist es. Ein PProgramm ist nicht fehlerfrei, weil es ordnungsgemäß compiliert.
    Es hat noch nie etwas gefunzt. To tear down the Wall would be a Werror!
    25.06.2016: [Swift] gehört zu meinen *Favorite Tags* auf SO. In welcher Bedeutung von "favorite"?
  • Thx. Da ihr hier doch noch fleissig am weiterdiskutieren seit, muss ich jetzt schon noch fragen ob ich das mittlerweilen richtig mach: NSArray mit NSDictionarys drin? Genau wie in der Apple-Dokumentation?

    Ach ja: und dann hab ich noch einen anderen kleinen Schnipsel, den ihr zwischen eurer zankerei ( ;) ) noch schnell erklären könntet:

    Quellcode

    1. NSMutableDictionary *defaults = [NSMutableDictionary dictionary];
    2. for (i = 0; i < [list count]; ++i) {
    3. id current = [list objectAtIndex: i];
    4. [defaults setObject: current forKey: [NSNumber numberWithInt: i]];
    5. }


    Wieso geht das nicht, in meinem tollen Buch steht ich kann so ziemlich alles in ein Dictionary reinschreiben...?
    Gruss Dominik.
  • Das mit dem Array auslesen funktioniert schon. Und wenn ich [NSNumber numberWithInt: i] durch [current objectForKey: @"someKey"] ersetze wird das ganze auch brav in ein File geschrieben (ich kann und will nicht garantieren, dass das Objekt für "someKey" einzigartig ist) . Mit NSNumber gehts jedoch nicht!? Und wenn ich Objekte aus dem Array abfrage, die nicht existieren, müsste mir das ja ein Runtime error geben, tut es aber nicht.

    Quellcode

    1. NSMutableDictionary *defaults = [NSMutableDictionary dictionary];
    2. int i;
    3. for (i = 0; i < [list count]; ++i) {
    4. id current = [list objectAtIndex: i];
    5. [defaults setObject: current forKey: [NSNumber numberWithInt: i]];
    6. }
    7. if([defaults writeToFile: @"defaults" atomically: YES] != YES) {
    8. NSLog (@"File not saved");
    9. }
    Gruss Dominik.
  • Ich fing auch nicht vom Sortieren an, sondern habe a nur jemanden geantwortet.

    Und ein (konzeptioneller) Fehler liegt auch dann vor, wenn etwas nicht so funktioniert, wie es erwartet. Irgendwelche Code-Wüsten, die zufällig dem Nutzer das präsentieren, was er erwartet, sind für mich nicht fehlerfrei. Ist aber vllt auch eine Frage des Anspruches.
    Es hat noch nie etwas gefunzt. To tear down the Wall would be a Werror!
    25.06.2016: [Swift] gehört zu meinen *Favorite Tags* auf SO. In welcher Bedeutung von "favorite"?
  • Original von deconceptional
    Das mit dem Array auslesen funktioniert schon. Und wenn ich [NSNumber numberWithInt: i] durch [current objectForKey: @"someKey"] ersetze wird das ganze auch brav in ein File geschrieben (ich kann und will nicht garantieren, dass das Objekt für "someKey" einzigartig ist) . Mit NSNumber gehts jedoch nicht!? Und wenn ich Objekte aus dem Array abfrage, die nicht existieren, müsste mir das ja ein Runtime error geben, tut es aber nicht.


    laut doku beherrschen die Container nur property list serialisierung von haus aus

    das heißt möchtest du sie schreiben und lesen wenn du keine NSPropertyList fähigen Objekte hast must du sie "von" hand durch einen NSKeyedArchiver jagen

    und NSNumber ist imho kein Object welches Property List Serializierung beherrscht
    snafu
    :() { :|: &};:
    sometimes i dream in hex
    Obey gravity! Because its a law!
  • Und ich dachte schon, ich hätte es falsch im Kopf.

    Mir scheint das Problem bei dem NSDictionary zu liegen, nämlich, dass dieses sich weigert, Dictionarys mit NSNumber-Objekten als _Keys_ zu schreiben. Und ich ahne auch vage, warum das so ist: Um jedenfalls im Klartext die PL zu schreiben, muss das Objekt in Text gewandelt werden. Das Wandeln von Floats in Text und umgekehrt führt jedoch nicht zum Ursprungsergebnis, jedenfalls nicht zwingend. Da könnte es lalilustige Effekte geben.

    Wenn du indizierst, wieso nimmst du nicht ein Array?
    Es hat noch nie etwas gefunzt. To tear down the Wall would be a Werror!
    25.06.2016: [Swift] gehört zu meinen *Favorite Tags* auf SO. In welcher Bedeutung von "favorite"?