1.nsuserdefaults是乙個單例類,可以用於資料的永久儲存, 一般用於儲存應用程式設定以及使用者資料等輕量級資料, 而且簡單實用。
3.nsuserdefaults是單例,同時也是執行緒安全的
4.nsuserdefaults儲存的物件全是不可變的:nsdictionary, nsarray, nsstring, nsnumber, nsdate, nsdata.
這一點非常關鍵,儲存物件不對的話會導致程式崩潰.
5.存入資料時, 不會立即同步到記憶體中, 但可以通過呼叫synchronize方法來使記憶體中的快取與使用者預設系統進行同步。
[[nsuserdefaults standarduserdefaults]synchronize]
7.通過removeobjectforkey:方法可以進行資料的移除.
若需要將自定義物件通過nsuserdefaults儲存時, 不可以直接儲存, 也不可以將自定義物件放入字典或者陣列中在新增. 但可以通過將自定義物件轉化為 nsdata 型別, 再進行儲存.
1.將自定義型別轉換為nsdata型別
自定義型別物件要歸檔就需要遵守< nscodeing > 協議, 然後在 .m中實現恩codewithcode: 和initwithcoder: 兩個方法.
自定義類**:
#import
@inte***ce
person : nsobject
@property (nonatomic, copy)nsstring *name;
@property (nonatomic, assign)nsinteger age;
@end
#import "person.h"
@implementation
person
-(void)encodewithcoder:(nscoder *)acoder
-(instancetype)initwithcoder:(nscoder *)adecoder
return
self;
}@end
2.將 nsdata存入 nsuserdefaults中
//自定義型別
person *per = [[person alloc]init];
per.name = @"zhangsan";
per.age = 42;
//轉化為 data
nsdata *data = [nskeyedarchiver archiveddatawithrootobject:per];
//存入
[[nsuserdefaults standarduserdefaults]setobject:@ forkey:@"person"];
[[nsuserdefaults standarduserdefaults]synchronize];
//取出列印
person *a = [nskeyedunarchiver unarchiveobjectwithdata:[[[nsuserdefaults standarduserdefaults] objectforkey:@"person"] valueforkey:@"zhangsan"]];
nslog(@"%@,%ld",a.name,a.age);
NSUserDefaults儲存顏色
inte ce nsuserdefaults color void setcolor nscolor thecolor forkey nsstring key nscolor colorforkey nsstring key end implementation nsuserdefaults col...
NSUserDefaults儲存資料
1.用處 nsuserdefaults用來儲存類似使用者的配置 程式設定資訊等這些的資料 ios下可以使用nsuserdefault nskeyedarchiver sqlite coredata幾種常用的方式來儲存資料,其中nsuserdefaults用來儲存類似使用者的配置等這些的資料,後兩者使...
NSUserDefaults 用來儲存使用者設定資訊
nsuserdefaults 可以用來儲存使用者設定資訊,下次啟動程式的時候可以直接讀取,比儲存在檔案和資料庫中要方便很多。nsstring const int hall filter speed inthallfilterspeed nsstring const int hall filter s...