ios數(shù)據(jù)持久化 - preference(偏好設(shè)置)

******? 數(shù)據(jù)持久化常用的五種方式? ******

1.plist文件(屬性列表)

2.preference(偏好設(shè)置)

3.NSKeyedArchiver(歸檔)

4.SQLite 3

5.CoreData


偏好設(shè)置是專門用來保存應(yīng)用程序的配置信息的,一般不要在偏好設(shè)置中保存其他數(shù)據(jù)。

如果沒有調(diào)用synchronize方法,系統(tǒng)會根據(jù)I/O情況不定時刻地保存到文件中。所以如果需要立即寫入文件的就必須調(diào)用synchronize方法。

偏好設(shè)置會將所有數(shù)據(jù)保存到同一個文件中。即preference目錄下的一個以此應(yīng)用包名來命名的plist文件。

NSUserDefaults適合存儲輕量級的本地數(shù)據(jù),如登陸界面的數(shù)據(jù),用戶名、密碼等用戶偏好設(shè)置類的數(shù)據(jù)。下次啟動應(yīng)用的時候就可以直接從NSUserDefaults里面讀取上次運行的數(shù)據(jù)。

如果使用自己建立的plist文件什么的,需要自己顯式創(chuàng)建文件,讀取文件,很麻煩,而如果用NSUserDefaults則不用管這些,就像讀字典一樣,直接讀取數(shù)據(jù)就可以了,同時NSUserDefaults有緩存機制,可以避免頻繁讀寫文件。

NSUserDefaults支持的數(shù)據(jù)格式有:NSNumber(BOOL、Integer、Float、Double),NSString,NSDate,NSArray,NSDictionary,NSData類型。

NSUserDefaults不能存儲可變(mutable)類型,只能存儲不可變類型

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];

//添加preference

[defaults setObject:@"value1" forKey:@"key1"];

[defaults setObject:@1111 forKey:@"key2"];

[defaults synchronize];

//刪除preference

[defaults removeObjectForKey:@"key1"];

[defaults synchronize];

//修改preference

[defaults setObject:@"value2" forKey:@"key1"];

[defaults synchronize];

//刪除所有preference

NSString *appDomainStr = [[NSBundle mainBundle] bundleIdentifier];

[defaults removePersistentDomainForName:appDomainStr];

NSString *key1Value = [defaults objectForKey:@"key1"];

NSNumber *key2Value = [defaults objectForKey:@"key2"];

NSLog(@"偏好設(shè)置=%@=%@",key1Value,key2Value);

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容