Auf den NSTask-Startpfad kann nicht zugegriffen werden. Funktioniert in Xcode. Fehler in XCode angezeigt

OK. Zu diesem Thema gibt es mehrere Fragen zum Stapelüberlauf.Diese Frage war die einzige Frage kommt den Minen am nächsten, verwendet aber Benachrichtigungen.

Der Code ist sehr einfach. Erstellen Sie ein neues leeres Mac OSX Projekt und fügen Sie einfach den folgenden Code in das einapplicationDidFinishLaunching: Methode. Es soll den Pfad einer ausführbaren Datei (in diesem Fall GIT) erhalten.

NSTask *aTask = [[NSTask alloc] init];
NSPipe *outputPipe = [NSPipe pipe];
NSPipe *errorPipe = [NSPipe pipe];

[aTask setStandardOutput: outputPipe];
[aTask setStandardError: errorPipe];
[aTask setArguments:[NSArray arrayWithObject:@"which"]];
[aTask setLaunchPath:@"/usr/bin/git"];

NSFileHandle *outputFileHandler = [outputPipe fileHandleForReading];
NSFileHandle *errorFileHandler = [errorPipe fileHandleForReading];

[aTask launch];
[aTask waitUntilExit];

// Task launched now just read and print the data
NSData *data = [outputFileHandler readDataToEndOfFile];
NSString *outPutValue = [[NSString alloc] initWithData: data encoding: NSUTF8StringEncoding];

NSData *errorData = [errorFileHandler readDataToEndOfFile];
NSString *errorValue = [[NSString alloc] initWithData:errorData encoding:NSUTF8StringEncoding];

NSLog(@"Error value: %@",errorValue);
NSLog(@"Output Value: %@",outPutValue);

Dieser Code richtet zwei Lesepipes ein und führt einen Befehl aus:which git.

Wenn ich dies in XCode laufen lasse, erhalte ich die folgenden Ergebnisse korrekt:

Error value: ""  
Output Value: /usr/bin/git

Wenn ich zum Ordner build / Products / Debug gehe und auf die ausführbare Datei doppelklicke, wird diese Meldung in der Konsolen-App gedruckt:

Frage: Also, was ist hier wirklich das Problem? bitte nur keine alternative lösung machen ... ich möchte auch wissen was das problem ist .. danke.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage