Fragen zu einem Cocoa-Buch

Diskutiere das Thema Fragen zu einem Cocoa-Buch im Forum Mac OS Entwickler, Programmierer

  1. cyko

    cyko Thread Starter Mitglied

    Beiträge:
    360
    Zustimmungen:
    2
    Mitglied seit:
    15.03.2004
    Hallo liebe Objective-C´ler...
    Ich hab nach langer Zeit endlich mal die Gelegenheit mich mal mit Objectice-C und Cocoa zu beschäftigen.
    Dazu hab ich flugs ein Buch rausgekramt welches ich letztes Jahr erworben habe.
    Nun weiß ich das es sich nicht um die aktuelle Fassung des Buches handelt, aber entweder das Buch ist von vorne bis hinten voller Fehlern, oder ich schnall da beim Konzept der Sprache was nicht.

    Und zwar folgendes:
    Der Autor gibt ein solches Beispiel an
    Code:
    - (int)setPreis: (int)cPreis;
    {
    	NSLog(@"Methode %@ von Objekt \"%@\" aufgerufen",
    	NSStringFromSelector(_cmd), Name);
    	
    	Preis = cPreis;
    }
    
    ...und zwei Dinge sprangen mir direkt ins Auge, nämlich "-(int)" und das Semikolon vor den geschweiften Klammern.
    Ich würde vermuten das "-(Rückgabewert)..."gemeint ist und das ein Semikolon einen Befehl abschließt (wie in C++ oder Java bspw.).
    Also würde ich das dann so machen:
    Code:
    - (void)setPreis: (int)cPreis
    {
    	NSLog(@"Methode %@ von Objekt \"%@\" aufgerufen",
    	NSStringFromSelector(_cmd), Name);
    	
    	Preis = cPreis;
    }
    
    Liege ich da jetzt völlig falsch?
    Und wenn nicht... Kennt ihr gute Bücher zu dem Thema (auch gerne in englischer Sprache).

    Danke schon mal für euren Rat...
    :)
     
  2. below

    below Mitglied

    Beiträge:
    13.504
    Zustimmungen:
    1.088
    Mitglied seit:
    15.03.2004
    Nö, da liegst Du nicht falsch. Halte ich jetzt aber nicht für einen katastrophalen Fehler.

    Welches Buch und welche Auflage ist es dann?

    Alex
     
  3. cyko

    cyko Thread Starter Mitglied

    Beiträge:
    360
    Zustimmungen:
    2
    Mitglied seit:
    15.03.2004
    Das Buch ist das im deutschsprachigem Raum recht bekannte
    "Objective-C und Cocoa Programmieren unter Apple Mac OS X"
    in der Auflage von 2005.

    Na ja, es ist jetzt so das ähnliche Fehler direkt Mehrfach in dem
    Abschnitt über Klassen und Vererbung zu finden sind.
    Ich finde das schon ein wenig verwirrend.
    Komischerweise ist es so, das ich die Abschnitte welche über
    Systemgrundlagen oder die Arbeit mit dem Interface-Builder
    eigentlich recht ordentlich geschrieben sind (Rechtschreibfehler
    aussen vor gelassen).

    Komisch finde ich des weiteren das mir der Compiler auch den "falschen" Quelltext übersetzt. Er wirft dann zwar ein paar Warnungen,
    aber das Programm läuft (was bei dem falsch gesetzten
    Semikolon schon recht interessant ist).
     
  4. below

    below Mitglied

    Beiträge:
    13.504
    Zustimmungen:
    1.088
    Mitglied seit:
    15.03.2004
    Davon gibt es eine neue Auflage.

    Der Code ist ja auch syntaktisch nicht falsch.

    Alex
     
  5. cyko

    cyko Thread Starter Mitglied

    Beiträge:
    360
    Zustimmungen:
    2
    Mitglied seit:
    15.03.2004
    Okay... kannst Du mir das Prinzip dahinter erklären?
    Also warum ich hinter die Kopfzeile einer Methode auch ein Semikolon
    setzen und warum der Rückgabetyp auch int sein kann?
    ;)
     
  6. below

    below Mitglied

    Beiträge:
    13.504
    Zustimmungen:
    1.088
    Mitglied seit:
    15.03.2004
    Warum sollte der Rückgabetyp nicht int sein können? Du gibts nichts zurück, das ist nicht klug, und semantisch wahrscheinlich auch ein Fehler. Syntaktisch aber nicht.

    Und ich habe jetzt die C Definition nicht hier, aber an einem überflüssigen Semikolon stört sich der Compiler nicht.

    Du kannst auch printf ("Hallo\n");;;;;;;;; schreiben.

    Alex
     
  7. cyko

    cyko Thread Starter Mitglied

    Beiträge:
    360
    Zustimmungen:
    2
    Mitglied seit:
    15.03.2004
    Nun... das ich einen Rückgabetyp angeben kann den ich
    dann nicht nutze ist eine Sache.
    Aber das ich hinter den Methodenkopf und vor den geschweiften Klammern
    ein Semikolon setze, das ist in objective-c, c und c++ zu fuss auf
    der Konsole z.B. gar nicht drin.
    (Ist ja jetzt nicht so das ich das hinter Preis = cPreis; gesetzt hätte o.ä.)
     
  8. below

    below Mitglied

    Beiträge:
    13.504
    Zustimmungen:
    1.088
    Mitglied seit:
    15.03.2004
    Wie meinst Du das?

    Alex
     
  9. cyko

    cyko Thread Starter Mitglied

    Beiträge:
    360
    Zustimmungen:
    2
    Mitglied seit:
    15.03.2004
    - (int)einMethode: (int)einInt;
    {
    }

    geht wohl in Xcode durch.

    int eineMethode(int einInt);
    {
    }

    geht unter c, c++ so nicht... Also wird erst gar nicht kompiliert.
     
  10. below

    below Mitglied

    Beiträge:
    13.504
    Zustimmungen:
    1.088
    Mitglied seit:
    15.03.2004
    Xcode benutzt aber nichts anderes als gcc.

    Alex
     
Die Seite wird geladen...

MacUser.de weiterempfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Akzeptieren Weitere Informationen...