Я разрабатываю приложение macOS с помощью Objective-C, которое я хочу запускать с помощью некоторых команд, подобных терминалу. На самом деле я хочу запустить команду YOLO из своего приложения. Для этого я использую класс NSTask. Когда я запускаю команду через код, при запуске задачи, я получаю сообщение об ошибке «Не удалось открыть файл cfg/coco.data». Эта же команда отлично работает с терминалом, но не в моем приложении.Нужно выполнить команду в приложении Cocoa
Вот мой код:
NSTask *task;
task = [[NSTask alloc] init];
[task setLaunchPath:@"/bin/bash"];
NSString *commandToRun = @"Desktop/darknet/ && ./darknet detect cfg/yolo.cfg yolo.weights data/dog.jpg";
NSArray *arguments = [NSArray arrayWithObjects:
@"-c",
[NSString stringWithFormat:@"%@", commandToRun],
nil];
NSLog(@"run command: %@",commandToRun);
[task setArguments: arguments];
NSPipe *pipe;
pipe = [NSPipe pipe];
[task setStandardOutput: pipe];
NSFileHandle *file;
file = [pipe fileHandleForReading];
[task launch];
NSData *data;
data = [file readDataToEndOfFile];
NSString *output;
output = [[NSString alloc] initWithData: data encoding: NSUTF8StringEncoding];
Возможный дубликат [Как запустить команду терминала в быстром скрипте? (например, xcodebuild)] (http://stackoverflow.com/questions/26971240/how-do-i-run-an-terminal-command-in-a-swift-script-e-g-xcodebuild) – shallowThought