2016-05-11 100 views
1

我想寫一個數組到.plist,但在我調用該函數後沒有任何內容在.plist中。如何將數組寫入plist?

這裏是我的代碼:

override func viewDidLoad() { 
     super.viewDidLoad() 
     var filepath = NSHomeDirectory().stringByAppendingString("/lacator.plist") 
     let array:NSArray = ["b","a","n","d"] 
     array.writeToFile(filepath, atomically: true) 

} 

文件放在:

/var/mobile/Containers/Data/Application/AE38143E-C398-4DA7-952D-4E1C903E9637/locator.plist 

,但我無法找到該文件夾​​...

+2

我已經試過你在iOS模擬器,爲我的作品精碼。您是否嘗試過記錄'filepath'?可能它存儲的文件有些不是你預期的地方 –

+0

在我的情況下,文件放在這裏:'/ Users/melifaro/Library/Developer/CoreSimulator/Devices/525924EE-1C43-4341-A3BC-EF42224DB268/data/Containers /數據/應用程序/ A4BD9D82-7AD5-488F-BF73-541DEB5FB007/lacator.plist' –

+0

您不能寫入iOS的主目錄,寫入文檔目錄 – dan

回答

1

如前所述@丹,你不能寫入主目錄,考慮寫入文檔文件夾:

func applicationDocumentsDirectory() -> String { 
     let paths = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomainMask.UserDomainMask, true) 
     let basePath = paths.first ?? "" 
     return basePath 
    } 

    let filepath = applicationDocumentsDirectory().stringByAppendingString("/lacator.plist") 
    let array:NSArray = ["b","a","n","d"] 
    array.writeToFile(filepath, atomically: true) 

    print("Does file exist: \(NSFileManager.defaultManager().fileExistsAtPath(filepath)) at path: \(filepath)") 

輸出

Does file exist: true at path: /var/mobile/Applications/2754A65C-DF1B-4B69-9FC5-A3A171D88087/Documents/lacator.plist 

如果啓用了文件從iTunes文件夾的訪問,你可以從iTunes文件:

iTunes Documents Directory in my app

+0

非常感謝! – Yuri

+0

@Yuri,歡迎光臨!投票並接受,如果這有助於:) –