2015-08-19 200 views
4

我嘗試在運行時獲取我的應用程序的路徑。我發現選自C一些舊的來源,並轉換它到相應的功能的參數類型定義:正確使用NSGetExecutablePath

var path = [Int8] (count:1024, repeatedValue: 0) 
var bufsize : UInt32 = 1024 

if _NSGetExecutablePath(&path, &bufsize) == 0 { 
println("executable path is \(path)") 
} 

它運行,但我需要一個INT8陣列,而不是字符串。所以我必須搜索字符鏈的結尾並將其轉換回字符串。在SWIFT中使用此功能的正確方法是什麼?

回答

3

你需要從C字符串

let executablePath = String(CString: path, encoding: NSASCIIStringEncoding)! 
println("executable path is \(executablePath)") 

創建斯威夫特字符串,但還有一個更簡單的方式來獲得可執行

let executablePath = NSBundle.mainBundle().executablePath! 
+0

這是令人難以置信的路徑!非常感謝你。我搜索了很多,但從來沒有發現提示NSBundle.mainBundle()。executablePath! – Peter71

+0

如果你認爲答案是正確的,請接受它。 – vadian

+0

我做到了,但被迫等待,因爲在接受它之前有一段最短的時間延遲! – Peter71