stdout の内容を読み取るようにファイル ハンドルを設定しました。availableData を使用してそこからデータを取り出そうとするとハングしますが、アプリがデバイスで手動で実行された場合のみです。Xcode またはシミュレーターを使用して自分のデバイスでアプリを実行すると、期待どおりにデータが取り出され、残りのコードは完全に機能します。何が起こっているのですか?私のコードは以下の通りです:
int pipefd[2];
pipe(pipefd);
dup2(pipefd[1], STDOUT_FILENO);
close(pipefd[1]);
NSFileHandle *stdoutReader = [[NSFileHandle alloc] initWithFileDescriptor:pipefd[0]];
// this method writes output to stout
int result = [self createOutput:string1:string2];
// code hangs on this next line when app is run manually on device)
NSData *stdoutData = [stdoutReader availableData];
私のデバイスでは、createOutput メソッドの実行が遅くなるので、stdout からデータを取得しようとすると、まだ何もないのではないかと思っています。