IOS 學(xué)習(xí)之 NSUserDefaults

用戶輕量級(jí)的數(shù)據(jù)持久化,主要用于保存用戶程序的配置等信息,以便下次啟動(dòng)程序后能恢復(fù)上次的設(shè)置.
該數(shù)據(jù)實(shí)際上是以"鍵值對(duì)"形式保存的(類似于NSDictionary),因此我們需要通過 key 來讀取或者保存數(shù)據(jù)(value).

NSUserDefaults 能直接儲(chǔ)存的數(shù)據(jù)格式有:

  • NSNumber ( Integer、Float、Double )
  • NSString
  • NSDate
  • NSArray
  • NSDictionary
  • BOOL

注意

  • Objective C 中無法直接儲(chǔ)存 Int類型的對(duì)象只能儲(chǔ)存NSNumber類型的對(duì)象;(很多時(shí)候需要有個(gè)轉(zhuǎn)換過程)
  • Swift中可以直接儲(chǔ)存 Int類型的對(duì)象,因?yàn)镾wift可能做了對(duì)應(yīng)的轉(zhuǎn)換。
  • 關(guān)于存 Bool 值 其實(shí)儲(chǔ)存的形式是 Int

具體使用如下:

  1. 獲取一個(gè)NSUserDefaults引用:

       let userDefaults = NSUserDefaults.standardUserDefaults()
    
  2. 保存數(shù)據(jù)

       userDefaults.setValue("this a test for userDefault", forKey: "keyOne");
    
  3. 讀取數(shù)據(jù)

       userDefaults.doubleForKey("double")
    
  4. 其他數(shù)據(jù)的存取

The NSUserDefaults class provides convenience methods for accessing common types such as floats, doubles, integers, Booleans, and URLs. A default object must be a property list, that is, an instance of (or for collections a combination of instances of): NSData,NSString, NSNumber, NSDate, NSArray, or NSDictionary. If you want to store any other type of object, you should typically archive it to create an instance of NSData.

NSUserDefaults提供輕量級(jí)的方法去獲取各種不同數(shù)據(jù)類型的數(shù)據(jù)(舉例:float, double , integer , Bool , URL). 對(duì)象必須是能夠存入Dictionary的對(duì)象: NSData NSString NSNumber NSDate NSArray NSDictionary.如何你想存入其他類型的數(shù)據(jù),你需要轉(zhuǎn)換成NSData。

保存數(shù)據(jù):

    NSData *objColor = [NSKeyedArchiver archivedDataWithRootObject:[UIColor redColor]];

    [[NSUserDefaults standardUserDefaults]setObject:objColor forKey:@"myColor"];

讀取數(shù)據(jù):

    NSData *objColor = [[NSUserDefaults standardUserDefaults]objectForKey:@"myColor"];

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

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

  • *面試心聲:其實(shí)這些題本人都沒怎么背,但是在上海 兩周半 面了大約10家 收到差不多3個(gè)offer,總結(jié)起來就是把...
    Dove_iOS閱讀 27,624評(píng)論 30 472
  • 最近公司項(xiàng)目中使用了本地存儲(chǔ),所以趁著周六日來整理一下在Swift中的幾種數(shù)據(jù)存儲(chǔ)方式。 一、plist文件存儲(chǔ) ...
    大臉貓121閱讀 5,102評(píng)論 0 11
  • 概論 所謂的持久化,就是將數(shù)據(jù)保存到硬盤中,使得在應(yīng)用程序或機(jī)器重啟后可以繼續(xù)訪問之前保存的數(shù)據(jù)。在iOS開發(fā)中,...
    Leeson1989閱讀 2,090評(píng)論 4 1
  • 1.不可變數(shù)組轉(zhuǎn)變?yōu)榭勺償?shù)組聲明實(shí)例變量的數(shù)組 必須記得實(shí)現(xiàn) 對(duì)于遍歷數(shù)組找到對(duì)象后 如果還需要查找 記得先結(jié)束 ...
    小新xin閱讀 1,040評(píng)論 0 1
  • 天氣陰 今天看了群里發(fā)的關(guān)于孝敬父母的視頻真的是感覺到有很多做的不到位的地方,愧疚感越來越強(qiáng)烈。也許我們每天繁忙的...
    不倒翁先生閱讀 285評(píng)論 0 1

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