2013-02-26 2 views
5

Я разрабатываю OSX-приложение и в нем хочу узнать, что представляет собой текущий каталог (т. Е. Каталог, в котором содержится .app-файл).Каталог программ в Objective-C (OSX)

На данный момент, я использую следующий код:

NSString *dir=[[NSFileManager defaultManager] currentDirectoryPath]; 
[[NSAlert alertWithMessageText:@"dir" 
       defaultButton:@"OK" 
       alternateButton:nil 
        otherButton:nil 
    informativeTextWithFormat:dir] runModal]; 

При работе с Xcode (Run-кнопка), это дает мне каталог отладки (который является то, что я ищу), но при двойном щелчке приложения в Finder (так, в каталоге отладки) он дает мне /, который меня озадачивает.

Почему это происходит и как я могу получить текущий каталог надежно?

ответ

7

То есть папка расслоения:

NSString *appPath = [[NSBundle mainBundle] bundlePath]; 

(reference).

+0

Спасибо, это было то, что я искал! (На самом деле, не _exactly_: я использовал '[[[NSBundle mainbundle] bundlePath] stringByDeletingLastPathComponent]', чтобы получить то, что я хотел :)) – tomsmeding

+1

@tomsmeding Ах да, я пропустил бит * hold * из каталога, в котором содержится .app -файл". – trojanfoe

2

При программировании в Apple, Swift вы получите путь к приложению с:

let pathtoapplication: String = NSBundle.mainBundle().bundlePath 
Смежные вопросы