使用 NSUserDefaults 儲存自定義物件

2021-07-15 06:38:59 字數 1665 閱讀 5364

nsuserdefaults是乙個單例,在整個程式中只有乙個例項物件,他可以用於資料的永久儲存,而且簡單實用,可以讓資料自由傳遞。     

nsuserdefaults支援的資料型別有:nsnumber(nsinteger、float、double),nsstring,nsdate,nsarray,nsdictionary,bool。

以下是介紹使用 nsuserdefaults 儲存自定義物件。

1、.h檔案新增nscoding協議

#import

@inte***ce zlwithdrawparameter : nsobject

@property (nonatomic, copy) nsstring *account;//提現賬號

@property (nonatomic, copy) nsstring *realname;//真實姓名

@end

2、.m檔案實現nscoding的方法

#import "zlwithdrawparameter.h"

@implementation zlwithdrawparameter

/***  將物件寫入檔案的時候呼叫

*  怎樣儲存

**  @param acoder acoder

*/- (void)encodewithcoder:(nscoder *)acoder

- (id)initwithcoder:(nscoder *)adecoder

return self;

}@end

3、將資料儲存到nsuserdefault

static nsstring *const kwithdrawaccountalipay = @"withdrawaccountalipay";

為zlwithdrawparameter類的物件

//申請成功後將提現匯款的賬號儲存到本地

nsdata *data = [nskeyedarchiver archiveddatawithrootobject:self.withdrawparameter];

[zlfilehelper storeobjectinuserdefaultwithobject:data key:kwithdrawaccountalipay];

//storeobjectinuserdefaultwithobject:方法為:

//在userdefault中儲存物件

+ (void)storeobjectinuserdefaultwithobject:(id)object key:(nsstring*)key

4、從nsuserdefault中讀取資料

//_alipayparams 為zlwithdrawparameter類的物件

nsdata *alipaydata = [zlfilehelper getobjectfromuserdefaultwithobject:kwithdrawaccountalipay];

_alipayparams = [nskeyedunarchiver unarchiveobjectwithdata:alipaydata];

//getobjectfromuserdefaultwithobject:方法為:

//在userdefault中獲取物件

+ (id)getobjectfromuserdefaultwithobject:(nsstring*)key

iOS開發基礎 NSUserDefaults

nsuserdefaults 是乙個單例 用來儲存小型資料 儲存到本地 在本地生成了乙個plist檔案,然後把資料寫到了plist檔案裡 nsuserdefaults user nsuserdefaults standarduserdefaults 把資料儲存到本地 需要設定乙個key值 user ...

iOS 偏好設定 NSUserDefault

nsuserdefaults類提供了乙個與系統進行互動的程式設計介面,用來儲存 恢復應用程式的偏好設定和配置資料等,適合儲存輕量級的本地資料。比如儲存乙個登陸介面的資料,例如使用者名稱 密碼之類的。如果使用plist檔案儲存,那麼就要自己建立檔案,讀取檔案,很麻煩。同時nsuserdefaults的...

IOS資料儲存 NSUserDefaults

1,nsuserdefaults可以儲存某些資訊在本地,小資料連同大資料一起操作,經常訪問的弄一起,所以儲存一些較輕量級的資料,比如使用者名稱等等。2,nsuserdefaults是單執行緒,是單例模式 3,nsuserdefaults存放於乙個plist檔案中,程式退出後資料並不會被清除 nsus...