你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> ios中NSUserDefaults的用法

ios中NSUserDefaults的用法

編輯:IOS開發綜合

ios中NSUserDefaults的用法

 

 

NSUserDefaults類提供了一個與默認系統進行交互的編程接口。NSUserDefaults對象是用來保存,恢復應用程序相關的偏好設置,配置數據等等。默認系統允許應用程序自定義它的行為去迎合用戶的喜好。你可以在程序運行的時候從用戶默認的數據庫中讀取程序的設置。同時NSUserDefaults的緩存避免了在每次讀取數據時候都打開用戶默認數據庫的操作。可以通過調用synchronize方法來使內存中的緩存與用戶默認系統進行同步。

NSUserDefaults類提供了非常方便的方法來獲取常用的類型,例如floats,doubles,intergers,Booleans,URLs。所以一個NSUserDefaults的對象必須是屬性表,這也就是說我們可以存儲NSData,NSString,NSNUmber,NSDate,NSArray,NSDictionary這些實例。如果你想存儲其他類型的對象,你要將其歸檔並創建一個NSData來實現存儲。

從NSUserDefaults返回的值是不可改變的,即便是你在存儲的時候使用的是可變的值。例如你使用mutable string做為“MyStringDefault”的值,當你做使用stringForKey:方法獲取的值,這個值仍然是不可變的。

NSUserDefaults是單例,同時也是線程安全的

在使用NSUserDefaults的時候,

先看下下面的代碼

NSDictionary* defaults = [[NSUserDefaults standardUserDefaults] dictionaryRepresentation];

NSLog(@Defaults: %@, defaults);

是用來獲取設備上的所有的NSUserDefaults的設置。

 

NSUserDefaults適合存儲輕量級的本地數據,比如要保存一個登陸界面的數據,用戶名、密碼之類的,個人覺得使用NSUserDefaults是首選。下次再登陸的時候就可以直接從NSUserDefaults裡面讀取上次登陸的信息咯。

因為如果使用自己建立的plist文件什麼的,還得自己顯示創建文件,讀取文件,很麻煩,而是用NSUserDefaults則不用管這些東西,就像讀字符串一樣,直接讀取就可以了。NSUserDefaults很方便,讀取也很容易。

 

創建一個user defaults方法有多個,最簡單得快速創建方法:

 

[plain] 
  1. NSUserDefaults *accountDefaults = [NSUserDefaults standardUserDefaults];

    添加數據到 user defaults:

     

    [plain]
    1. [accountDefaults setObject:nameField.text forKey:UserDefaultNameKey];

      也可以添加基本數據類型int, float, bool等,有相應得方法

       

       

      [plain]
      1. [accountDefaults setBool:YES forKey:UserDefaultBoolKey];

        從user defaults中獲取數據:

         

         

        [plain]
        1. [accountDefaults objectForKey:NCUserDefaultNameKey] [accountDefaults boolForKey: UserDefaultBoolKey];

          要點:

          NSUserDefaults非常好用,並不需要用戶在程序中設置NSUserDefaults的全局變量,需要在哪裡使用NSUserDefaults的數據,那麼就在哪裡創建一個NSUserDefaults對象,然後進行讀或者寫操作。

          針對同一個關鍵字對應的對象或者數據,可以對它進行重寫,重寫之後關鍵字就對應新的對象或者數據,舊的對象或者數據會被自動清理。


           

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved