應用保存數據倒應用bundle中,這在模擬器中是可以的,但是在設備真機中是不行的。
設備和模擬器之間的不同導致其出現不同的行爲。在模擬器中,應用是保存在本地中的,你有完全的讀寫權限,所以代碼是可以讀寫bundle中的設置數據。但是,在設備中,應用bundle是無法修改的。File System Programming Guide 有對應用目錄中可寫位置進行了說明。
應用的home目錄包含了一個preferences (<Application_Home>/Library/Preferences
)的子目錄。但是你不應直接創建該目錄,而是使用NSUserDefaults 或CFPreferences進行獲取和設置。
另外,可以將應用的特殊數據保存在<Application_Home>/Documents
中。使用NSFileManager
URLsForDirectory:inDomains:
來獲取該目錄路徑。
上面這兩種方法還有一個好處是當應用升級時,數據會保持不變,不會丟失。