Push-Nachrichten von MacTechNews.de
Würden Sie gerne aktuelle Nachrichten aus der Apple-Welt direkt über Push-Nachrichten erhalten?
Forum>Entwickler>Xcode - system() Befehl mit Variable füttern

Xcode - system() Befehl mit Variable füttern

michimaier08.12.1319:11
Hi miteinander,

das Problem ist sehr einfach - ich finde bei google allerdings nicht den passenden Suchbegriff - und brauche - HILFE

der "system()" - Befehl feuert shell commands ab.
Also wenn ich sage:
system( say yeah );
wird der Befehl "say yeah" in der shell ausgeführt ( hoffe das ist so richtig ausgedrückt )

Ich bräuchte aber in etwa folgendes:
NSString *string = @"say yeah";
system( string );
Allerdings akzeptiert der system() - Befehl nicht die Variable NSString.
Jemand eine Idee wie ich einen NSString in einen lesbare Variable für den System Befehl umwandle?

Schonmal vielen Dank im voraus!
0

Kommentare

stefan08.12.1319:28
0
michimaier08.12.1319:30
soso
Keine Ahnung wo ich da das richtige finde
Danke dir trotzdem
0
and3rs08.12.1320:00
Laut verwendet system() kein NSString sondern C-Strings (char*).
Daher müsste der Aufruf mit system([string UTF8String]) zu bewerkstelligen sein.
(UTF8String wandelt den NSString in einen char* mit UTF8 Encoding um)
0
dreyfus08.12.1320:08
So wie @@and3rs es sagt ist es richtig. Abstrakt geht das:

NSString *foo = @"your text here";
const char *bar = [foo UTF8String];

Allerdings gibt es (und das sprengt hier den Rahmen, Diskussionen dazu finden sich etliche) Gründe, "system()" lieber nicht zu verwenden. NSTask ist in den meisten Fällen der bessere Ansatz.
0
ExMacRabbitPro08.12.1320:08
Bleib doch in der ObjC Welt! Schau dir mal NSTask an.
0
michimaier08.12.1320:36
@and3rs & Dreyfus:
http://www.youtube.com/watch?v=UMRo5XCKddQ
Vielen Dank

@ExMacRabbitPro:
Wahrscheinlich ist deine Herangehensweise die bessere,
aber ich benötige echt nur einen quickfix.
und bevor ich da rum suche - nehme ich einfach die Lösung her.

Ja die Diskussion über system() kenn ich - aber für diesen einfachen Fall - reicht das völlig aus

THX miteinander!
0
Marcel Bresink08.12.1320:42
system( say yeah );

Wobei das für diese konkrete Problemstellung viel zu kompliziert ist. Die korrekte Vorgehensweise wäre eher etwas wie

NSSpeechSynthesizer *synth;

synth = [[NSSpeechSynthesizer alloc] init];
[synth startSpeakingString: @"yeah"];

Mit Xcode hat das Ganze nichts zu tun. Das ist ja nur ein grafisches Hilfsmittel, um das Programm einzugeben und zu übersetzen.
0
iCode
iCode09.12.1312:10
Das ist wie ein sh fork, aber mit den Privilegien deiner Anwendung. Hoffentlich schießt Du damit keinen Bock.
0
michimaier11.12.1321:19
ähm ja...
Der Befehl heisst nicht wirklich "say yeah"....
es sind ein paar Terminal Befehle die ich abschiesse -
dennoch danke für den Tipp
0

Kommentieren

Diese Diskussion ist bereits mehr als 3 Monate alt und kann daher nicht mehr kommentiert werden.