2013-02-26 14 views
5

Ich entwickle eine OSX-Anwendung und darin würde ich gerne wissen, was das aktuelle Verzeichnis ist (d. H. Das Verzeichnis, das .app-Datei enthält).Programmverzeichnis in Objective-C (OSX)

Im Moment verwende ich den folgenden Code:

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

Wenn von Xcode (Run-Taste) ausgeführt wird, das gibt mir die Debug-Verzeichnis (dasist das, was ich suche), aber beim Doppelklicken auf die App im Finder (also im Debug-Verzeichnis) gibt es mir /, was mich verwirrt.

Warum passiert das und wie bekomme ich das aktuelle Verzeichnis zuverlässig?

Antwort

7

, dass der Bundle-Ordner ist:

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

(reference).

+0

Danke, war es das, was ich gesucht habe! (Tatsächlich, nicht _exactly_: Ich habe '[[[NSBundle mainbundle] bundlePath] stringByDeletingLastPathComponent] 'verwendet, um zu bekommen, was ich wollte :)) – tomsmeding

+1

@tomsmeding Ah ja, ich habe das * holds * Bit von" dem Verzeichnis verpasst, das .app enthält -Datei". – trojanfoe

2

Wenn Apple Swift Programmieren Sie den Anwendungspfad mit bekommen:

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