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

Objective C - ich blick's net :(

Dieses Thema im Forum "OS X-Developer" wurde erstellt von MikeZ, 29.11.05.

  1. MikeZ

    MikeZ Stina Lohmann

    Dabei seit:
    19.01.05
    Beiträge:
    1.022
    Hallo,
    ich hätte da ein Problem mit Objective C, Cocoa etc :)

    Ich hab ne Funktion, die sieht mehr oder weniger so aus:

    Code:
    - (xxx) CalculateNote:(int) value
    {
       xxx MeinString;
       if (value<=1)
          MeinString = "Hallo";
       if (value >=1)
          MeinString = "Tschuess";
    
       return MeinString;
    }
    
    So, ich suche jetzt das ominöse xxx, also irgendein Variablentyp, in dem ich Strings ablegen kann.

    Dann noch ne Frage, wie kann ich zB sowas in Objective C realisieren:

    int a = (EineFunktionDieIntReturned(variable)*2+3)/3

    Danke schonmal :) Ich werde sicher noch viele Fragen zu Objective C haben :D
    Schade, dass XCode so auf Mac beschränkt ist, das geniale Konzept sollte sich mal auf Multiplattform-Wege begeben... Das wird hoffentlich so ein bisschen mein Borland C++ Builder Ersatz für Mac :)

    Edit: Wieso macht der mir vor das (int) nen Strich? der ist in der Edit Ansicht gar nicht drin, komisch?!
     
  2. Squart

    Squart Pomme Etrangle

    Dabei seit:
    29.01.04
    Beiträge:
    910
    NSString ist die Klasse deines Begehrens. Wobei du vor einen String ein @ packen musst, ansonsten ist es ein ganz normaler C-String:
    NSString *meinString = @"Tschuess";

    Gleichzeitig kannst du standard C-Funktionen benutzen.
    Code:
    int EineFunktionDieIntReturned(int anInt) {
     bla bla bla;
     return 5;
    }
    Ich glaube, dass du diese Funktionen nicht zwischen @implementation (oder @interface) und @end stellen darfst, bin mir aber nicht sicher
     
  3. MacApple

    MacApple Lord Grosvenor

    Dabei seit:
    05.01.04
    Beiträge:
    3.470
    Nein, eine Instanz von NSString ist keineswegs ein ganz normaler C-String. Auch wenn im Quellcode sowas wie @"ein String" steht, ist das ein Objekt und kein C-String.

    MacApple
     
  4. Squart

    Squart Pomme Etrangle

    Dabei seit:
    29.01.04
    Beiträge:
    910
    Habe ich das nicht gesagt?

    Gruß
    Squart
     
  5. MacApple

    MacApple Lord Grosvenor

    Dabei seit:
    05.01.04
    Beiträge:
    3.470
    Ich denke nicht. Was ist denn für Dich ein C String? Für mich ist ein C String ein Array von char, terminiert mit 0. Ein NSString ist Unicode codiert und hat auch noch die Objektstruktur dazu (isa Pointer etc.).

    MacApple
     
  6. Squart

    Squart Pomme Etrangle

    Dabei seit:
    29.01.04
    Beiträge:
    910
    Klar, ich weiß was ein C-String ist und weiß wohl auch, dass dies kein Objekt ist (im Gegensatz zu NSString. Aber anscheinend habe ich mich zu undeutlich - keineswegs falsch, evtl. nur missverständlich - ausgedrückt:
    Das "musst" drückt einen Zwang und eine Notwendigkeit aus. Missverständlich könnte jetzt sein, dass jemand meint, seine NSString Variable sei ohne @ ein C-String. Ich meinte, dass "..." (ohne @) ein C-String ist, von der Instanzvariable habe ich nicht gesprochen.

    Gut, dies bring jetzt nichts mehr konstruktives zu diesem Thema bei, ich wollte nur noch sagen, dass ich schon den Unterschied zwischen C und Obj-C kenne.
     
  7. MacApple

    MacApple Lord Grosvenor

    Dabei seit:
    05.01.04
    Beiträge:
    3.470
    Na ja, im Quelltext nennt man das ein String-Literal. ;) Der Compiler macht dann ja erst daraus einen C-String oder ein NSString-Objekt oder sonst was.

    MacApple
     

Diese Seite empfehlen