indexOfRepresentedObject: findet nix?

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • indexOfRepresentedObject: findet nix?

    hi
    ich hab da ein problem mit einem dynamischen menu...

    das menu wird zur laufzeit mit menuitems erweitert die alle ihr "represented Objekt" gesetzt bekommen (das menu ist an verschiedenen Popupbuttons gehängt)

    nun soll wenn der user den "titel" des represented objekt ändert sich ja auch der titel des NSmenu items ändern damit man das im Popup auch erkennen kann ...
    nun hab ich folgenden code geschrieben:

    Quellcode

    1. int menuindex = [specAMenu indexOfItemWithRepresentedObject:[spectrenStore objectAtIndex:rowIndex]];
    2. NSLog(@"objekt at index %@",[spectrenStore objectAtIndex:rowIndex]);
    3. NSLog(@"represented objekt %@",[[specAMenu itemAtIndex:rowIndex+2] representedObject]);
    4. // die +2 im index ist für mein debugging ich "weiß" das dort mein menuobjekt steckt
    5. [[specAMenu itemAtIndex:menuindex] setTitle:anObject];


    das produziert folgenden lustigen output:

    Quellcode

    1. 2006-04-26 12:12:38.419 techedit[4541] objekt at index New Spectrum 2
    2. 2006-04-26 12:12:38.419 techedit[4541] represented objekt New Spectrum 2
    3. 2006-04-26 12:12:38.419 techedit[4541] *** Assertion failure in -[NSMenu itemAtIndex:], Menus.subproj/NSMenu.m:713
    4. 2006-04-26 12:12:38.419 techedit[4541] Exception raised during posting of notification. Ignored. exception: Invalid parameter not satisfying: (index >= 0) && (index < (_itemArray ? CFArrayGetCount((CFArrayRef)_itemArray) : 0))


    sprich indexOfItemWithRepresentedObject findet mein objekt nicht obwohl es sicher eine item mit diesem Objekt gibt ... hab mir auch mal die addressen ausgeben lassen ... die sind ebenfalls gleich ...

    ich bin verwirrt und was nun sprach zeus?
    jemand eine idee was ich falsch mache?
    snafu
    :() { :|: &};:
    sometimes i dream in hex
    Obey gravity! Because its a law!
  • RE: indexOfRepresentedObject: findet nix?

    Wenn dein Objekt nicht gefunden würde, wäre der Retval -1. Mit deinem +2 ergäbe das 1, was _nicht_ dazu führen würde, dass die Assertion in die Hose geht.

    Ich würde da eher dem Kommentar misstrauen. Schau dir den Wert halt mal an.
    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"?
  • RE: indexOfRepresentedObject: findet nix?

    bei menuindex kommt -1 raus - den kommentar hab ich nur hier fürs forum reingeschreiben damit sich keiner wundert wo das plus zwei herkommt
    die beiden nslogs hab ich nur fürs debbuging.. in dem falle weiß ich einfach das an dieser stelle ein entsprechdes menuitem sitzt - ich begreif halt nciht warum ich einen -1 index bekomme ...

    rowIndex ist der index aus dem tableview

    anObject ist das änderungsobjekt
    snafu
    :() { :|: &};:
    sometimes i dream in hex
    Obey gravity! Because its a law!
  • RE: indexOfRepresentedObject: findet nix?

    ich hab den fehler gefunden ...

    indexOfRepresentedObject: sendet an an das zu testende Objekt eine isEqual: Nachricht und vergleicht nicht einfach nur die Adressen wie ich annahm

    ich hab meiner Spectrum Klasse mal eine entsprechende isEqual: Methode gegönnt und siehe da schon funktioniert alles ...

    sollten sie vllt mal in der Doku erwähnen das isEqual: implementiert sein muß dazu ...
    ich versuchs mir für das wiki zu merken wenn ich an der stelle bin ^^;
    snafu
    :() { :|: &};:
    sometimes i dream in hex
    Obey gravity! Because its a law!