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!
„Dieser Post hat keinerlei Anspruch auf Richtigkeit.“
0

Kommentare

stefan08.12.1319:28
0
michimaier08.12.1319:30
soso
Keine Ahnung wo ich da das richtige finde
Danke dir trotzdem
„Dieser Post hat keinerlei Anspruch auf Richtigkeit.“
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!
„Dieser Post hat keinerlei Anspruch auf Richtigkeit.“
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
„Dieser Post hat keinerlei Anspruch auf Richtigkeit.“
0

Kommentieren

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