Hillegass-Challenge Chapter8 Aufgabe 1

  • Hillegass-Challenge Chapter8 Aufgabe 1

    Hallo.
    Ich habe Probleme mit der o.g. Challenge. Hierbei soll man nur über den InterfaceBuilder die Sortierung eines Array-Controllers so abändern, dass die Länge des Strings gezählt wird.
    Ich habe schon alles probiert, aber nichts hat funktioniert.
    Meiner bescheidenen Meinung nach müsste man in den TableColumnAttributes in das Feld SortKey den Stringbezeichner (also personName) und in Selector die Nachricht (also "length:") eintragen.

    Was mache ich falsch?

    Vielen Dank im Vorraus!
  • RE: Hillegass-Challenge Chapter8 Aufgabe 1

    Original von Metro
    Meiner bescheidenen Meinung nach müsste man in den TableColumnAttributes in das Feld SortKey den Stringbezeichner (also personName) und in Selector die Nachricht (also "length:") eintragen.

    Was mache ich falsch?

    Der Doppelpunkt hinter "length" ist zu viel.

    Michael
  • tut immer noch nicht....

    Vielen Dank, Michael.

    Jetzt bin ich einen Schritt weiter. Mir ist leider nicht klar warum ich bei "caseInsensitiveCompare:" den Doppelpunkt setzen muss und bei "length" nicht.

    Wie dem auch sei:
    Es wird jetzt fehlerfrei compiliert und das Log zeigt auch keine Meldungen mehr an. Leider funktioniert die Sortierung nach der Stringlänge immer noch nicht. Es wird anscheinend nur jedes 2. Mal sortiert. Das Sortierkriterium ist mir schleierhaft: Es wird weder alphabetisch noch nach Länge sortiert. :(
  • RE: tut immer noch nicht....

    Original von Metro
    Vielen Dank, Michael.

    Jetzt bin ich einen Schritt weiter. Mir ist leider nicht klar warum ich bei "caseInsensitiveCompare:" den Doppelpunkt setzen muss und bei "length" nicht.

    Die Länge eines Strings bekommst du mit der Methode length. Die Methode hat keine Parameter, deshalb auch keinen Doppelpunkt. caseInsensitiveCompare: dagegen erwartet einen Parameter, deshalb der Doppelpunkt.

    Bei dem Rest kann ich mangels Buch und Code leider nicht weiterhelfen.

    Michael
  • Nochmal eine Nachfrage:
    wenn "caseInsensitiveCompare:" einen Parameter erwartet, wo steht er denn dann im InterfaceBuilder?

    Vielleicht findet sich ja jemand, der die o.g. Challenge schon mal gemacht hat und eine Antwort auf mein Problem hat....
  • Im Buch steht, dass der Trick darin besteht den Key Path im Interface Builder zu verwenden. Wie ich aber in den SortKey den Methodenaufruf von "length" reinbekomme, ist mir schleierhaft, da der Interfacebuilder die Punkt- bzw. Doppelpunktnotation gar nicht annehmen will.