Получение пути приложения во время выполнения + какао
Я хочу, чтобы мое приложение запускалось со съемных носителей, и оно должно получить путь к сменному хранилищу, с которого оно запускается, или устройство хранения rem, с которого запускается приложение. Я видел nsworkspace, чтобы получить путь к съемному устройству хранения, но не знаю, как получить путь во время выполнения.
Пожалуйста, предложите способ сделать это. также я искал в сети и узнал, что в системах Mac нет функции автозапуска. Я хочу, чтобы мое приложение запускалось автоматически при подключении съемного хранилища к системе Mac. Есть ли обходной путь для этого?
Спасибо
2 ответа
[[NSBundle mainBundle] bundlePath]
даст вам путь к вашей оболочке.app.
Оттуда вам нужно будет использовать NSFileManager
API-интерфейсы для перечисления томов и определения того, какое приложение используется, и соответствует ли оно вашим критериям съемности. API были значительно обновлены в Snow Leopard.
В сторону; это явно странное требование для приложения. Атипичный, если не сказать больше.
На ваш второй вопрос о функции автозапуска, есть несколько методов для определения того, что том был смонтирован, и затем использование этого для запуска действия (например, запуска программы). Но все они требуют, чтобы ваше программное обеспечение уже было установлено, чтобы вы могли запустить демон для отслеживания монтирования томов. Я не предполагаю, что программа должна делать такие вещи (это почти никогда не должно), но это техника. Я подозреваю, что это не то, что вы спрашиваете.
Сомнительная особенность того, что система автоматически запускает что-то на основе монтирования тома, была удалена с выпуском OS X. Это почти немыслимо, что такое поведение будет вновь добавлено. Это приглашение к широкому кругу злоупотреблений, приносящих очень мало пользы для пользователя. OS X откроет окно Finder при подключении нового тома, и вы можете предоставить полезный фоновый образ для своего корневого каталога, который проинструктирует пользователя о том, как запустить ваше приложение.