0

Mac 用の Cocoa アプリケーションから引数を取るシェル スクリプトを呼び出すのに問題があります。

シェル スクリプトを作成し、アプリのローカル リポジトリに配置しました。それはスクリプトと呼ばれます。URL アドレスである 1 つの引数を取ります。

次のようにスクリプトを呼び出しますが、何も起こらず、エラーもメッセージも表示されず、何もせずにスクリプトが停止するだけです。

NSString *address = [_addressField stringValue];
NSString *resPath = [[NSBundle mainBundle] resourcePath];

NSTask *task;
task = [[NSTask alloc] init];
[task setLaunchPath: [NSString stringWithFormat:@"%@/SCRIPT", resPath]];

NSArray *arguments;
arguments = [NSArray arrayWithObjects: address, nil];
[task setArguments: arguments];

NSPipe *pipe;
pipe = [NSPipe pipe];
[task setStandardOutput: pipe];

NSFileHandle *file;
file = [pipe fileHandleForReading];

[task launch];

NSData *data;
data = [file readDataToEndOfFile];

NSString *status;
status = [[NSString alloc] initWithData: data encoding: NSUTF8StringEncoding];
NSLog (@"%@", status);

よろしくお願いします

4

2 に答える 2

0

/bin/echo起動パスとして試してみると、Objective-C コードはうまく動作するように継ぎ目があります。したがって、問題はスクリプトにあると思います。質問にスクリプトを含めていただけますか? Cocoa アプリケーションから実行する場合の環境は、対話型シェルで実行する場合とはおそらくかなり異なることに注意してください。

于 2012-06-08T09:36:15.367 に答える