Kapitel 6, Seite 528

  • Kapitel 6, Seite 528

    Ersteinmal ein herzliches Hallo an alle. Ich bin seit kurzem auch mit dem Objektive-C Virus infiziert und kämpfe mich seither durch das Buch :D
    In Kapitel 6 bin ich jetzt auf zwei Problemfälle gestoßen, bei denen ich etwas Hilfe gebrauchen könnte - aller Anfang ist ja bekanntlich schwer.
    Im wesentlichen geht es um den auf obiger Seite abgedruckten Quellcode, der an zwei Stellen von XCode 4.2 "bemängelt" wird.

    Quellcode

    1. self.selectedGroup = groupMO;
    Hier wird folgende Warnung ausgegeben: warning: incompatible Objective-C types 'struct NSManagedObject *', expected 'struct NSArray *' when
    passing argument 1 of 'setSelectedGroup:' from distinct Objective-C type
    Mich würde interessieren, wie ich das lösen kann bzw. ob es überhaupt beachtenswert ist - ich hatte mich schon zu einem Typecast hinreißen lassen, aber dabei habe ich kein gutes Gefühl :S

    Desweiteren taucht in diesem Abschnitt diese Methode auf, die zwar noch funktioniert, aber wohl bald aus der API verschwindet:

    Quellcode

    1. [sidebarView selectRow:[sidebarView rowForItem:groupMO] byExtendingSelection:NO];
    Ich habe das jetzt durch folgendes ersetzt:

    Quellcode

    1. NSIndexSet* index = [[[NSIndexSet alloc] initWithIndex:[sidebarView rowForItem:groupMO]] autorelease];
    2. [sidebarView selectRowIndexes:index byExtendingSelection:NO];
    Das funktioniert auch wunderbar, aber ich wüsste dennoch gerne, ob man das ganze nicht besser lösen kann.

    Gruß
    Vertex
  • Wie ist denn selectedGroup im Header definiert?
    ---
    Zum Beispiel mit

    C-Quellcode

    1. [sidebarView selectRowIndexes:[NSIndexSet setWithIndex:[sidebarView rowForItem:groupMO]] byExtendingSelection:NO];

    Was meinst du mit 'besser lösen'?
    «Applejack» "Don't you use your fancy mathematics to muddle the issue!"

    Iä-86! Iä-64! Awavauatsh fthagn!

    kmr schrieb:

    Ach, Du bist auch so ein leichtgläubiger Zeitgenosse, der alles glaubt, was irgendwelche Typen vor sich hin brabbeln. :-P
  • Hallo Lucas,
    Wie ist denn selectedGroup im Header definiert?

    Quellcode

    1. id selectedGroup;
    2. @property( readwrite, retain ) NSArray* selectedGroup;

    das ist mir jetzt peinlich :S Keine Ahnung wie ich diesen Fehler übersehen konnte; manchmal sieht man den Wald vor lauter Bäumen nicht mehr - danke dir für den Schubser in die richtige Richtung.
    Was meinst du mit 'besser lösen'?
    Vielleicht etwas unglücklich formuliert, ich war schlichtweg unsicher, was die verwendeten Methoden betrifft, da ich z.Z. nicht ansatzweise einen Überblick über die Klassenbibliothek habe. Ich habe einfach etwas aus der von XCode vorgeschlagenen Ersatzmethode für selectRow:byExtendingSelection "zusammengebastelt", ohne sicher zu wissen, ob es nicht u.U. eine bessere Alternativ-Methode gibt.

    Gruß
    Vertex