2013-02-26 15 views
5

Bir OSX uygulaması geliştiriyorum ve içinde, geçerli dizinin ne olduğunu bilmek istiyorum (yani .app dosyasını tutan dizin).Objective-C (OSX) Program dizini

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

Xcode (Çalıştır-düğme) koşarak bu benim aradığım şey olan (me ayıklama dizini veriyor:

anda

, ben aşağıdaki kodu kullanıyorum), ancak Finder'da uygulamayı çift tıklattığınızda (yani, hata ayıklama dizininde), bana / veriyor, bu da beni şaşırtıyor.

Neden böyle oluyor ve geçerli dizini nasıl güvenilir bir şekilde alabilirim?

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

(reference): demet klasördür

cevap

7

. Elma Swift programlama yaparken

+0

teşekkür ederiz, bu benim aradığım buydu! (Aslında, _exactly_ değil: ben [[[NSBundle mainbundle] bundlePath] stringByDeletingLastPathComponent] 'ı istediğini elde etmek için kullanılır :)) – tomsmeding

+1

@tomsmeding Ah evet, tuttu. -dosya". – trojanfoe

2

Birlikte uygulama yolunu alacak:

let pathtoapplication: String = NSBundle.mainBundle().bundlePath