標籤: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 輕量級快速儲存