2015-04-24 6 views
1

Мне нужно перезагрузить приложение, если я перезагружу то, что потребует начала с самого начала. Я попробовал этотПрограммный запуск приложения OSX

let path = NSBundle.mainBundle().resourcePath!.stringByDeletingLastPathComponent.stringByDeletingLastPathComponent 
    let task = NSTask() 
    task.launchPath = "open" 
    task.arguments = [path] 
    task.launch() 
    exit(0) 

, но я получаю сообщение об ошибке на open

запуска путь не доступный

+1

'launchPath' должен быть * полный путь * к исполняемому файлу, сравнить http://stackoverflow.com/questions/ 28971335/compile-latex-code-using-swift для аналогичной проблемы. –

+0

Я только что узнал сам :-) Спасибо! –

ответ

1

Хотя сама проблема была тривиальной (забыл путь) Я оставляю вопрос и ответ в случае, если кому-то еще нужна такая же функциональность.

let path = NSBundle.mainBundle().resourcePath!.stringByDeletingLastPathComponent.stringByDeletingLastPathComponent 
let task = NSTask() 
task.launchPath = "/usr/bin/open" 
task.arguments = [path] 
task.launch() 
exit(0) 

Редактировать (ежедневно Swift изменить синтаксис для SW3):

let url = URL(fileURLWithPath: Bundle.main.resourcePath!) 
let path = url.deletingLastPathComponent().deletingLastPathComponent().absoluteString 
let task = Process() 
task.launchPath = "/usr/bin/open" 
task.arguments = [path] 
task.launch() 
exit(0) 
+0

Как я могу выполнить это в Swift 3? – dylan

+0

@dylan Apple меняет синтаксис языка, как некоторые люди меняют свое нижнее белье. Я сделаю обновление. –

+0

Думал, что я мог бы добавить какое-то странное событие. С помощью моей программы некоторое время выполняли задачи и команды bin/bash. Не удалось запустить команды через мой xcode без экспорта проекта целиком. Добавление этого, однако, как-то фиксировало его? Я могу запустить предыдущие команды сейчас, а также этот, так что спасибо за это! Я предполагаю, что это проблема с разрешением, но она по-прежнему не складывается. ** Изменить ** - это _after_ Я перезапускаю приложение. Все еще странно. – dylan

Смежные вопросы