NSTask und Pipe
24. Juli 2007 | 0 blabla | trackback | static link
In einem meiner Objective-C Projekte verwende ich Python Scripte. Die Ergebnisse werden direkt von der Konsole gelesen. Hierfür bieten sich zwei Mögliche Implementierungen an:
- NSTask
- popen, fread, ...
Eigentlich möchte ich die Cocoa Implementierung verwenden, da sie einige Features bietet, die ich sonst nicht habe. Allerdings bleibt die Ausführung mit NSTask öfters unerwartet hängen und es ist nicht ersichtlich warum das so ist.
Nach ein paar Tests, die mir auch eine zeitliche Aussage über die beiden Möglichkeiten geben sollte, ist mir nun aufgefallen, dass die Funktion waitUntilExit von NSTask in meinem Fall nicht sauber funktioniert.
Der folgende Code Schnipsel funktioniert besser:
while ((data=[pipeHandle availableData])!=NULL && [data length]>0)
tempString = [[NSString alloc] initWithData:data
encoding:NSASCIIStringEncoding];
NSLog (@"%@", tempString);
