RSS-Feed anzeigen

Karins Newbie-Blog für iOS

Hillegass ja/nein

Bewerten
von
frauenPower
am 16.07.2011 um 12:37 (585 Hits)
Es gab ja nun einige Kontroversen zu diesem scheinbar in Heiligkeit verweilenden Autor.

Meine Einschätzung und meine Erfahrung mit dem Autor:


Eines von vielen Beispielen, warum Hillegass keine Empfehlung von mir bekommt:

4.31 dealloc implementieren

"In der "initWithEntryDate:"-Methode fehlt noch die Referenzierung von "entryDate. Fügen Sie die erforderliche Referenzierung hinzu."
Da möchte man in der Tat mal den Autor fragen, was er sich dabei denkt. Vorher lief das Programm. Nun "fehlt" etwas, weil eine "dealloc"-Methode implementiert wurde.
Erklärung für das Fehlen: Null!
Erklärung für den nun notwendigen Einsatz: Null!

Unabhängig einmal davon, dass der Code sich stillschweigend verändert hat also:
- nicht mehr so ist, wie im Buch entwickelt
- von dem mitgelieferten Code abweicht (Download bei Hillegass)
hilft einem Newbie diese Form der Wissensvermittlung nicht.

Ein bereits Fortgeschrittener weiß es.
Ein Profi sowieso.

Ergebnis: Nutzlos für jeden!

Und so gibt es eine ganze Reihe von Beispielen, die exakt nach diesem Muster ablaufen. Das Buch ist allerdings in einer Sache wirklich gut: Die eingesetzten Grafiken sind exzellent. Nie bessere gesehen und nie anschaulichere.


Und wer es nicht glaubt, der versucht dem Unsinn 4.3.4 Accessor-Methoden zu folgen.
Da muss dann, sofern "foo" ein Zeiger auf ein Objekt ist, dafür Sorge getragen werden, dass der neue Wert bewahrt und der alte Wert freigegeben wird. In der eher unlogischen und unbrauchbaren Abbildung 4.6 wird es dann erklärt (sofern man betrunken ist, oder was auch immer):
Vorher: foo zeigt auf ein NSCalendarDate-Objekt mit einem retainCount von 4. Oberhalb steht dann neuer Wert über einem NSCalendarDate-Objekt mit einem retainCount von 2.
Das gleiche Objekt hat einmal einen retainCount von 4 und von 2?
Eine Logik, die nüchtern nicht gegeben ist.
Unterhalb ist dann die Nachher-Situation: Wie durch wundersame Weise haben jetzt beide NSCalendatDate-Objekte einen retainCount von 3.

Purer Erklärungsnotstand, schlecht umgesetzt, noch schlechter grafisch dargestellt und von bestechendem Durcheinander.
Die Geschichte mit den Idiomen ist ebenfalls von besonderer Güte und das erste Idiom kann in meinen Anfängeraugen nicht funktionieren.
In der Setter-Methode von foo wird foo zunächst released. Wenn foo einen retainCount von 1 hat und dann in der Settermethode als erstes ein release bekommt, wird foo nach Adam Riese dealloziert. Geht mal gar nicht.

Nachtrag
Und nun wollte ich mich mal in das Thema Key-Value einarbeiten und nahm diesbezüglich Hillegass auch zur Hand: 7.2 Bindings, Seite 140 und 141.
Bind to: AppController und dann Model Key Path "fido". Gar nicht möglich! "self" und mehr geht auch nicht.
Warum auch. Beispiel der Synchronisation mittels "Key-Value Coding" für die Tonne.
Kaufempfehlung: Nein! oder besser noch: Niemals.

Aktualisiert: 18.07.2011 um 20:53 von frauenPower

Kategorien
Kategorielos

Kommentare

  1. Avatar von cropfaktor
    Da sind noch einige andere Nettigkeiten im Buch. Wirst sie sicherlich schnell entdecken.

    Deine letzte Buchempfehlung habe ich heute bestellt. Hörst sich gut an.
  2. Avatar von frauenPower
    Freut mich. Nee, ich mag da nicht weiterlesen wollen. Es ist einfach zu gruselig und der Mann ist überschätzt.
    "In Kapitel 2 haben Sie bereits target und action für zwei Buttons gesetzt: Dort haben Sie Ihr Foo-Objekt als target beider Buttons gesetzt..."
    Habe ich mit Sicherheit nicht, zumindest nicht bewusst. Ich habe ein Outlet und 2 Actions deklariert und wie ich nun durch Ziehen einer Verbindung plötzlich das ganze als "target" gesetzt haben soll, ist wundersame Bedeutungsvermehrung. Ich habe die beiden actions gesetzt und wenn ich da implizit noch etwas anderes gemacht haben sollte, sollte der Autor das sagen.

    Sei es wie es sei, meine kleine Schüleranwendung ist fertig und drei sind aus dem Urlaub zurück und da werde ich mich mit der Verteilung als nächstes beschäftigen, damit die das mal testen können. Die waren sehr überrascht, dass ich Wort gehalten habe.

    Liebe Grüße
    Karin
  3. Avatar von cropfaktor
    Bindings:

    Klar geht das nicht Karin. Schau mal in die Objektinstanz von AppController im Interfacebuilder unter "Reference Bindings" nach.
    Schmeiss die eine raus und behalte "fido". Dann geht es.
  4. Avatar von cropfaktor
    Wir haben jetzt einen Azubi, der sich eigentlich mit unseren DBs beschäftigen soll, aber er möchte lieber sich in Objective-C versuchen. Damit er doch tut, was er soll, habe ich ihm Hillegass in die Hand gedrückt. Bis "RaiseMan" war er dabei, dann sah ich ein Buch fliegen. RaiseMan (document based application) unter Xcode 4 und das wüste Interface Builder Geklicke: Never.

    VBA ist sein neuer Freund

    Was macht Deine LiteraturApp. Vorangekommen?

    Viele Grüße
    Andreas
  5. Avatar von frauenPower
    Hi Andreas,

    sorry, habe mit den Kids gekämpft und mit dem AppStore und einem Distributions-Profil und es ist wie immer bei Apple: Wüstes Geklicke, Google ist voll von ähnlichen Problemen und ich habe die Nase voll.
    Meine Beispiel-App läuft gut, die Kids sind glücklich und ich stoppe an dieser Stelle.

    Objective-C ist mausetod, wenn man nicht Apple-Jünger ist und ich werde mich da nun eher in Richtung Web-Apps weiter fortbewegen. Wenn Menschen wie Hillegass verehrt werden, kann es mit der Güte des Ganzen nicht weit her sein.
    Was für ein Schwätzer.

    So, deshalb nur noch privat und Dir alles Liebe und wir hören ja eh voneinander.
    Karin

Trackbacks

Anmelden

Anmelden