• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Die Bildungsoffensive hier im Forum geht weiter! Jetzt sollen Kreativität und technische Möglichkeiten einen neue Dimension erreichen. Das Thema in diesem Monat lautet - Verkehrte Welt - Hier geht es lang --> Klick

Objective C - ich blick's net :(

MikeZ

Freiherr von Berlepsch
Registriert
19.01.05
Beiträge
1.116
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?!
 
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
 
Squart schrieb:
NSString ist die Klasse deines Begehrens. Wobei du vor einen String ein @ packen musst, ansonsten ist es ein ganz normaler C-String:
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
 
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
 
MacApple schrieb:
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
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:
Squart schrieb:
[...] Wobei du vor einen String ein @ packen musst, ansonsten ist es ein ganz normaler C-String
[...]
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.
 
Squart schrieb:
Ich meinte, dass "..." (ohne @) ein C-String ist, von der Instanzvariable habe ich nicht gesprochen.
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