このコードは、プロセスの標準出力を取得するために使用されます
NSTask * task;
NSPipe * pipe;
NSFileHandle * fileHandle;
task = [ [ NSTask alloc ] init ];
pipe = [ NSPipe pipe ];
fileHandle = [ pipe fileHandleForReading ];
[ task setLaunchPath: @"/usr/bin/lspci" ];
[ task setArguments:[NSArray arrayWithObject:@"-nn"]];
[ task setStandardOutput: pipe ];
[ task setStandardError: pipe ];
[ task launch ];
[ task waitUntilExit];
[ task release];
NSData *outputData = [[pipe fileHandleForReading] readDataToEndOfFile];
NSString *outputString = [[[NSString alloc] initWithData:outputData encoding:NSUTF8StringEncoding] autorelease];
/usr/bin/lspci
一部のシステムには存在しないため、この致命的なエラーが発生します
キャッチされていない例外 'NSInvalidArgumentException' が原因でアプリを終了しています。理由: '起動パスにアクセスできません'
存在することを事前に確認し、lspci
存在しない場合はユーザーにエラーメッセージを表示する方法は?