Problem mit Converter

  • Problem mit Converter

    Hallo zusammen,

    ich habe ein Problem mit dem Programmbeispiel "Converter" im Kapitel 2.
    Das Problem taucht auf, nachdem ich den Array Controller und das Modell erstellt habe.

    Beim Kompilieren erhalte ich vier mal nacheinander den folgenden Fehler im Log:

    -[MyDocument count]: unrecognized selector sent to instance 0x113e10

    Die Instanznummern sind je zwei mal identisch.
    Der Build Prozess bleibt dann stehen.

    Am XIB File kann es meiner Ansicht nach nicht liegen. Das habe ich auch getestet.
    Den Begriff "count" habe ich gesucht, der kommt in meinem gesamten Projekt überhaupt nicht vor.
    Auch ein "Clean all" habe ich schon durchgeführt.

    Mithilfe des Debuggers konnte ich dann herausfinden, dass das Problem beim Abarbeiten der folgenden Funktion in der Datei MyDocument.h auftritt, die ich vorher nie angefasst hatte.

    Quellcode

    1. - (NSString *)windowNibName
    2. {
    3. return @"MyDocument";
    4. }


    Ehrlich gesagt bin ich jetzt ein wenig ratlos, wie ich die Ursache des Fehlers finden und das Problem beheben kann.

    Gruß
    D.Mon
    Habe Mut, Dich Deines eigenen Verstandes zu bedienen.
    (Immanuel Kant)
  • Erhältst Du die Fehlermeldung wirklich beim Kompilieren oder erst zur Laufzeit?
    Ich denke eher, zur Laufzeit.

    Mit windowNibName hat das Ganze sicher nichts zu tun, aber ziemlich sicher, mit dem, was danach folgt, nämlich das Laden eines Nib. Zwei Dinge deuten darauf hin:
    - Du hast "count" nirgends in Deinem Code
    - Du lädst ein Nib, bevor das Problem auftritt

    Kurzum: das Problem liegt sicher in einem Nib. Bei "count" und Deiner Aussage, dass Du ArrayController verwendest, ist es ziemlich sicher ein falsches Binding. Bindings benutzen sicher häufig die count-Methode eines Arrays, sozusagen im Apple-eigenen Code, den Du ja nicht sehen kannst.
    Ist das Binding falsch, empfängt ein Objekt "count", das mit der Nachricht nix anfangen kann, wie myDocument.

    No.
  • RE: Problem mit Converter

    Original von Tom9811
    Ohne Sourcen werden wir dir nicht helfen können.

    Naja, die Sourcen stehen ja im Buch ;).

    @ norbi
    Ja, Du hast Recht, der Fehler kommt erst zur Laufzeit.
    Hatte ich zuerst nicht bemerkt, weil das Fenster nicht erscheint.

    Ihr meint also, das Problem hat mit einem nib zu tun bzw. eine mit dem Interfacebuilder erstellten Bindung ist falsch.

    Zwei Fragen:
    1. Wie findet man so ein Problem?
    2. Müsste das Problem dann nicht verschwinden, wenn ich meine MyDocument.xib mit der von der Website heruntergeladenen austausche?

    Danke und Gruß
    D.Mon
    Habe Mut, Dich Deines eigenen Verstandes zu bedienen.
    (Immanuel Kant)
  • RE: Problem mit Converter

    Original von D.Mon
    Original von Tom9811
    Ohne Sourcen werden wir dir nicht helfen können.

    Naja, die Sourcen stehen ja im Buch ;).

    a) Mit Sourcen meine ich alle Quellen, also einschließlich der Xibs.
    b) Im Buch stehen etwa 836238764387 Listings. Auf welcher Seite du dich gerade befindest, steht nicht in deinem Beitrag.
    c) Das, was im Buch steht, funktioniert. Wenn es bei dir nicht funktioniert, weichen deine Sourcen vom Buch ab.

    Original von D.Mon
    @ norbi
    Ja, Du hast Recht, der Fehler kommt erst zur Laufzeit.
    Hatte ich zuerst nicht bemerkt, weil das Fenster nicht erscheint.

    Ihr meint also, das Problem hat mit einem nib zu tun bzw. eine mit dem Interfacebuilder erstellten Bindung ist falsch.

    Mit an Sicherheit grenzender Wahrscheinlichkeit.

    Original von D.Mon
    Zwei Fragen:
    1. Wie findet man so ein Problem?

    überprüfen.

    Original von D.Mon
    2. Müsste das Problem dann nicht verschwinden, wenn ich meine MyDocument.xib mit der von der Website heruntergeladenen austausche?

    Kann sein, muss aber nicht sein. Es gibt ja verschiedene Abhängigkeiten zwischen Objective-C-Source und Nib. Aber es besteht eine gute Wahrscheinlichkeit.

    Danke und Gruß
    D.Mon[/quote]
    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"?
  • Okay, also ich bin im Buch auf Seite 126 unten.

    Das Austauschen der MyDocument.xib habe ich versucht, leider ohne den gewünschten Erfolg.

    Dass das, was im Buch steht, funktioniert ist mir klar, ich wollte aber jetzt auch nicht unbedingt sämtliche Sourcen posten — schon allein deswegen, weil ich niemandem zumuten wollte, die alle zu lesen ;).

    Ich werde jetzt mal Datei für Datei mein Projekt mit Projekt-02-09 (von der Website) vergleichen.
    Die Bindings des Array Controllers bin ich schon drei mal durchgegangen. Da finde ich keine Abweichung zum Buch.

    Gruß
    D.Mon
    Habe Mut, Dich Deines eigenen Verstandes zu bedienen.
    (Immanuel Kant)
  • Original von Tom9811
    Du könntest einfach dein Projekt hier hochladen.

    Ich wette, dass das Problem dann in 30 Minuten gefunden und behoben ist.


    Aber bitte den build-Ordner vor dem Hochladen löschen. Wie Tom schon sagte: Hier gibts in der Regel wenige Minuten nach dem Hochladen vom Projekt die 100% passende Antwort.
    Die Objective-Cloud ist fertig wenn sie fertig ist. Beta heißt Beta.

    Objective-C und Cocoa Band 2: Fortgeschrittene
    Cocoa/Objective-C Seminare von [co coa:ding].
  • Danke, da komme ich gerne darauf zurück.
    Ich bin gerade dabei, den Array Controller noch einmal komplett neu anzulegen.

    Beim Vergleichen der Dateien ich (neben vielen unterschiedlichen ref-, id-Nummern u.ä.) einige Unterschiede in der Datei "English.lproj/MyDocument.xib" gefunden. Das hat mich stutzig gemacht.

    z.B.
    Ich:
    <object class="NSMutableDictionary" key="IBDocument.Metadata">>
    Website:
    <object class="NSMutableArray" key="IBDocument.RootObjects" id="254116185">

    Ich:
    <string key="className">FirstResponder</string>
    Website:
    <string key="className">Converter</string>
    Habe Mut, Dich Deines eigenen Verstandes zu bedienen.
    (Immanuel Kant)
  • RE: Problem mit Converter

    Original von Mike
    Original von Amin Negm-Awad
    ...
    c) Das, was im Buch steht, funktioniert. Wenn es bei dir nicht funktioniert, weichen deine Sourcen vom Buch ab.


    Kann ich bis Seite 450 oder so bestätigen ;)

    Hast du was auf Seite 450 gefunden?
    Bitte her damit!
    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 D.Mon
    Ich denke Mike wollte damit nur sagen, dass er sich bis S. 450 durchgearbeitet hat.
    Ich bin gerade mal halb so weit.


    Du hast es erfasst ;)

    Keine Sorge Tom, wenn ich was finde schick ich dir eine Mail aber alle Fehler, die ich bisher hatte, sind auf meinem Mist gewachsen, getreu dem Motto "Wer lesen und schreiben kann ist klar im Vorteil." ;)
    [self setSignature:null];
    [[self postCount] increment];