String Objekte in Strings wandeln..

…Objective C und natives C arbeiten harmonisch, Seite an Seite. 

Da frage ich mich, wie kann man die Schnittstellen gestalten. Nehmen wir an, wir bauen uns ein Cocoa Projekt unter XCode. Dort erzeugen wir uns gewöhnlich ein Controller Objekt. Dieses Objekt repräsentiert z.B. ein Dialog Feld. Die Textfelder sind die Eigenschaften unseres Dialog Objektes. Die Buttons dessen Methoden.

Pures Objective C regelt den Dialog. Die Funktionen welche – je nach Dialog mit dem Nutzer – zur Ausführung gewünscht werden, sind in nativem C geschrieben.

Wie übergebe ich nun z.B. der Funktion „test ()“ einen String der in einem NSTextField Objekt steht?

Antwort: Wir wandeln das den String aus dem NSTextField – der ja eigentlich ein Objekt ist – in einen String, der auch einer ist – kein Objekt!

Das geht z.B. so:

Bildschirmfoto 2013-11-10 um 20.25.11

 

Die Funktion bekommt einen „echten“ String übergeben: grafik15(char meinstring[length]) {….}

That’s it!

Strings

Einem NSTextView Objekt kann ich nur String- Objekte aus: NSAttributedString übergeben. Das geht mit der Methode: appendAttributedString.

Beispiel:
NSAttributedString *next=[[NSAttributedString alloc] initWithString:@“\n“];
[protokoll_speicher appendAttributedString:next];

wobei protokoll_speicher der Inhalt unseres NSTextView ist und über:
protokoll_speicher=[protokoll textStorage];
deffiniert, gebildet… wird?

Was nun, wenn ich einem NSTextView Objekt eigentlich einen StringWithFormat übergeben möchte? Funktionieren tut das:

Bildschirmfoto 2013-10-20 um 20.37.40

 

Warum? Ich muss da wohl noch forschen……