iOS開發 -NSUserDefaults 輕量級快速儲存

來源:互聯網
上載者:User

標籤:ios   資料   輕量級   資料存放區方式   

IOS提供了一個輕量級的快速資料存放區方式:NSUserDefaults;
程式啟動並執行時候從使用者預設的資料庫中讀取程式的設定,同時NSUserDefaults的緩衝避免了在每次讀取資料時候都開啟使用者預設資料庫的操作,所有資料都放在記憶體中,讀寫速度很快。

NSUserDefaults是一個單例,在整個程式中只有一個執行個體對象,他可以用於資料的永久儲存,而且簡單實用,這是它可以讓資料自由傳遞的一個前提,也是大家喜歡用它儲存簡單資料的一個主要原因。

使用 NSUserDefaults 儲存自訂對象的最初,我們必須認識NSUserDefaults可以儲存哪一些類型的資料,下面一一列出:

NSUserDefaults支援的資料類型有:NSNumber(NSInteger、float、double),NSString,NSDate,NSArray,NSDictionary,BOOL.
  [NSUserDefaults  standardUserDefaults]用來記錄一下持續保留的資料非常方便,不需要讀寫檔案,而是保留到一個NSDictionary字典裡,由系統儲存到檔案裡,系統會儲存到該應用下的/Library/Preferences/gongcheng.plist檔案中。需要注意的是如果程式意外退出,NSUserDefaultsstandardUserDefaults資料不會被系統寫入到該檔案,不過可以使用[[NSUserDefaultsstandardUserDefaults] synchronize]命令直接同步處理到檔案裡,來避免資料的丟失。

1。 擷取 NSUserDefaults

   //這是一個單例,擷取非常方便,隨時可以調用:    [NSUserDefaults standardUserDefaults];

2。 寫入資料

    [[NSUserDefaults standardUserDefaults] setInteger:10 forKey:@"test"];   [[NSUserDefaults standardUserDefaults] setFloat:10.0 forKey:@"test"];   //..... NSUserDefaults 支援多種資料類型,用 key來標示

3。 讀出資料

     int a = [[NSUserDefaults standardUserDefaults] integerForKey:@"test"];     float b = [[NSUserDefaults standardUserDefaults] floatForKey:@"test"];
 。。。當然也支援其他各種類型

4。儲存資料,實現持久化儲存

    [[NSUserDefaults standardUserDefaults] synchronize];

5。 判斷資料是否存在

     if([[NSUserDefaults standardUserDefaults] objectForKey:@""test"]==nil){        //代碼處理    }else{    //代碼處理    }

而像SQLite這樣的資料庫方式,適合大量資料的儲存。

iOS開發 -NSUserDefaults 輕量級快速儲存

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.