NSTask NSPipe - ayuda de la línea de comandos del objetivo c
Aquí está mi código:
task = [[NSTask alloc] init];
[task setCurrentDirectoryPath:@"/applications/jarvis/brain/"];
[task setLaunchPath:@"/applications/jarvis/brain/server.sh"];
NSPipe * out = [NSPipe pipe];
[task setStandardOutput:out];
[task launch];
[task waitUntilExit];
[task release];
NSFileHandle * read = [out fileHandleForReading];
NSData * dataRead = [read readDataToEndOfFile];
NSString * stringRead = [[[NSString alloc] initWithData:dataRead encoding:NSUTF8StringEncoding] autorelease];
Entonces estoy tratando de replicar esto:
cd /applications/jarvis/brain/
./server.sh
pero usando NSTask en el objetivo-c.
Sin embargo, por alguna razón, cuando ejecuto este código, stringRead, no devuelve nada. Debería devolver qué terminal está volviendo cuando ejecuto el archivo .sh. ¿Correcto?
¿Algunas ideas?
Elijah