Что такое Python os.system () эквивалентно какао / Objective-C? - PullRequest
0 голосов
/ 10 марта 2011

Я хотел бы запустить некоторую команду терминала в моей программе Mac.Например, я обычно использую mate abc.txt или python abc.py из своей оболочки, чтобы открыть Text Mate или запустить скрипт на python.

Как я могу сделать то же самое с Cocoa / Objective-C?

Я думал о этом методе , но я предпочитаю просто работать в одну строку.

Например, когда пользователи вводят «python abc.py», я просто запускаю команду, как будто она находится в Terminal.app.Эквивалентная команда Python: os.system().

inputItem <- inputItem TextField </p>

NSString* item = [inputItem stringValue];
[NSRuncommandLikeShell item]; <-- ????

Переменные среды должны быть сохранены, чтобы мне не нужно было запускать '/ usr /bin / python '.

EDIT

Я могу использовать файл ~/.MacOSX/environment.plist для установки пути среды.Или я также мог бы использовать эту утилиту для графического интерфейса.

Ответы [ 2 ]

3 голосов
/ 10 марта 2011

Вы можете использовать объект NSTask. Если вам не нравятся все настройки, относящиеся к этому, вы можете создать категорию NSTask, которая сделает это за вас.

1 голос
/ 10 марта 2011

Вы можете использовать вызов времени выполнения C system().

#include <stdlib.h>

system([item UTF8String]);
...