NSPipe チャネルを使用して 2 つのスレッド間の通信を実現する必要があります。問題は、このメソッドを指定して端末コマンドを呼び出す必要がないことです。
[task setCurrentDirectoryPath:@"....."];
[task setArguments:];
データを書き込めばいいだけ
NSString * message = @"Hello World";
[stdinHandle writeData:[message dataUsingEncoding:NSUTF8StringEncoding]];
他のスレッドでこのメッセージを受信する
NSData *stdOutData = [reader availableData];
NSString * message = [NSString stringWithUTF8String:[stdOutData bytes]]; //My Hello World
たとえば、C# でのこのようなことは、パイプが ID 文字列で登録される NamedPipeClientStream、NamedPipeServerStream クラスで簡単に実行できます。
Objective-Cでそれを達成する方法は?