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);

Neues Blabla schreiben

 Benachrichtigung bei neuem Blabla ?