В 10.6 и более поздних версиях NSWorkspace имеет метод launchApplicationAtURL:options:configuration:error:
, который можно использовать для передачи аргументов приложению.
Существуют также функции служб запуска, такие как LSOpenItemsWithRole
.
Вы также можете отправить AppleEvent в Finder с просьбой открыть что-нибудь.
РЕДАКТИРОВАТЬ ДОБАВИТЬ: «лучший» субъективен, но я бы сказал, если вы можете использовать NSWorkspace, используйте его. Если вы не можете, например, вам нужно передать параметры командной строки и вам нужна поддержка Leopard, тогда используйте Launch Services.