iOS 數據持久化4種方式

iOS 4種講數據持久存儲到iOS文件的系統機制:數據庫

  1. 屬性列表(NSUserDefaults、plist文件)
  2. 對象歸檔(NSCoding)
  3. iOS嵌入式關係數據庫(SQLite3)
  4. 蘋果提供的持久化工具(Core Data)

 

說道數據持久化都涉及到一個共同的要素。既然是把數據持久存儲到iOS文件系統中,那麼久涉及到了應用沙盒。緩存

能夠嘗試使用Xcode創建一個空的應用,而後打開應用目錄能夠查看到有如下文件網絡

一、Documents

①存放內容
咱們能夠將應用程序的數據文件保存在該目錄下。不過這些數據類型僅限於不可再生的數據,可再生的數據文件應該存放在Library/Cache目錄下。
②是否會被iTunes同步

二、Documents/Inbox

①存放內容
該目錄用來保存由外部應用請求當前應用程序打開的文件。
好比咱們的應用叫A,向系統註冊了幾種可打開的文件格式,B應用有一個A支持的格式的文件F,而且申請調用A打開F。因爲F當前是在B應用的沙盒中,咱們知道,沙盒機制是不容許A訪問B沙盒中的文件,所以蘋果的解決方案是講F拷貝一份到A應用的Documents/Inbox目錄下,再讓A打開F。
②是否會被iTunes同步

三、Library

①存放內容
蘋果建議用來存放默認設置或其它狀態信息。
②是否會被iTunes同步
是,可是要除了Caches子目錄外

四、Library/Caches

①存放內容
主要是緩存文件,用戶使用過程當中緩存均可以保存在這個目錄中。前面說過,Documents目錄用於保存不可再生的文件,那麼這個目錄就用於保存那些可再生的文件,好比網絡請求的數據。鑑於此,應用程序一般還須要負責刪除這些文件。
②是否會被iTunes同步
否。

五、Library/Preferences

①存放內容
應用程序的偏好設置文件。咱們使用NSUserDefaults寫的設置數據都會保存到該目錄下的一個plist文件中,這就是所謂的寫道plist中!
②是否會被iTunes同步

六、tmp

①存放內容
各類臨時文件,保存應用再次啓動時不須要的文件。並且,當應用再也不須要這些文件時應該主動將其刪除,由於該目錄下的東西隨時有可能被系統清理掉,目前已知的一種可能清理的緣由是系統磁盤存儲空間不足的時候。
②是否會被iTunes同步
    //沙盒目錄
    NSHomeDirectory();
    
    //tmp文件路徑
    NSTemporaryDirectory();
    
    //Document
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *path = [paths objectAtIndex:0];
相關文章
相關標籤/搜索