• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> 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?!
 

Squart

Pomme Etrangle
Registriert
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
 

MacApple

Schöner von Bath
Registriert
05.01.04
Beiträge
3.652
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
 

Squart

Pomme Etrangle
Registriert
29.01.04
Beiträge
910
Habe ich das nicht gesagt?

Gruß
Squart
 

MacApple

Schöner von Bath
Registriert
05.01.04
Beiträge
3.652
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
 

Squart

Pomme Etrangle
Registriert
29.01.04
Beiträge
910
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.
 

MacApple

Schöner von Bath
Registriert
05.01.04
Beiträge
3.652
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