Ok. W związku z tym istnieje kilka pytań dotyczących przepełnienia stosu. This question was the only question jest najbliżej kopalni, ale używa powiadomień.Ścieżka uruchamiania programu NSTask jest niedostępna. Działa w Xcode. Błąd pokazany na XCode
Kod jest bardzo prosty. Utwórz nowy pusty projekt Mac OSX i wklej następujący kod w metodzie applicationDidFinishLaunching:
. Powinien uzyskać ścieżkę dowolnego pliku wykonywalnego (w tym przypadku GIT).
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);
Ten kod ustawia dwie linie odczytu i uruchamia jedno polecenie: which git
.
jeśli uruchomię to w Xcode i dostać to powoduje corretly:
Error value: ""
Output Value: /usr/bin/git
jeśli pójdę do mojego kompilacji/Produkty/folderu Debug i kliknij dwukrotnie plik wykonywalny, dostaję ten komunikat wydrukowany na app konsoli :
Pytanie: Więc, co jest naprawdę problem? proszę po prostu nie robić alternatywnego rozwiązania ... Chcę również wiedzieć, jaki jest problem .. dzięki.