最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

IOS 中NSUserDefaults讀取和寫入自定義對象的實(shí)現(xiàn)方法

 更新時間:2017年09月18日 10:53:48   作者:chyroger  
這篇文章主要介紹了IOS 中NSUserDefaults讀取和寫入自定義對象的實(shí)現(xiàn)方法的相關(guān)資料,希望通過本文大家能夠理解掌握這部分內(nèi)容,需要的朋友可以參考下

IOS 中NSUserDefaults讀取和寫入自定義對象的實(shí)現(xiàn)方法

NSUserDefaults可以存取一些短小的信息。

比如存入再讀出一個字符串到NSUserDefaults:

NSString *string = [NSString stringWithString @"hahaha"]; 
NSUserDefaults *ud = [NSUserDefaults standardUserDefaults]; 
[ud setObject:string forKey:@"myKey"]; 
NSString *value; 
value = [ud objectForKey:"myKey"]; 
 

但是并不是所有的東西都能往里放的。NSUserDefaults只支持: NSString, NSNumber, NSDate, NSArray, NSDictionary.

 如果把一個自定義的類存到一個NSArray里,然后再存到NSUserDefaults里也是不能成功的。不信可以試試,如果你成功的請告訴我。

那怎么辦呢? 

我找到的方法是,讓這個自定義類實(shí)現(xiàn)<NSCoding>協(xié)議中的- (id) initWithCoder: (NSCoder *)coder方法和- (void) encodeWithCoder: (NSCoder *)coder方法(obj-c的協(xié)議protocol就是java的接口interface,就是C++的純虛函數(shù)),然后把該自定義的類對象編碼到NSData中,再從NSUserDefaults中進(jìn)行讀取。

粘代碼:

假設(shè)有這樣一個簡單的類對象

@interface BusinessCard : NSObject <NSCoding>{ 
  NSString *_firstName; 
  NSString *_lastName; 
} 
@property (nonatomic, retain) NSString *_firstName; 
@property (nonatomic, retain) NSString *_lastName; 
@end; 
 
@implementation BusinessCard 
@synthesize _firstName, _lastName; 
- (void)dealloc{ 
  [_firstName release]; 
  [_lastName release]; 
  [super dealloc]; 
} 
- (id) initWithCoder: (NSCoder *)coder 
{ 
  if (self = [super init]) 
  { 
    self._firstName = [coder decodeObjectForKey:@"_firstName"]; 
    self._lastName = [coder decodeObjectForKey:@"_lastName"]; 
  } 
  return self; 
} 
- (void) encodeWithCoder: (NSCoder *)coder 
{ 
  [coder encodeObject:_firstName forKey:@"_firstName"]; 
  [coder encodeObject:_lastName forKey:@"_lastName"]; 
   
} 
 
@end 

然后再存取時通過NSData做載體:

BusinessCard *bc = [[BusinessCard alloc] init]; 
NSUserDefaults *ud = [NSUserDefaults standardUserDefaults]; 
NSData *udObject = [NSKeyedArchiver archivedDataWithRootObject:bc]; 
[ud setObject:udObject forKey:@"myBusinessCard"]; 
[bc release]; 
udObject = nil; 
udObject = [ud objectForKey:@"myBusinessCard"]; 
bc = [NSKeyedUnarchiver unarchiveObjectWithData:udObject] ; 

以上的代碼時由另一個程序中截取的,沒有測試過,但意思就是這樣了。

如果一個自定義類中由另一個自定義類對象,那么所有嵌套的類都要實(shí)現(xiàn)<NSCoding>。

如有疑問請留言或到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

相關(guān)文章

  • ios實(shí)現(xiàn)底部PopupWindow的示例代碼(底部彈出菜單)

    ios實(shí)現(xiàn)底部PopupWindow的示例代碼(底部彈出菜單)

    這篇文章主要介紹了ios實(shí)現(xiàn)底部PopupWindow的示例代碼(底部彈出菜單),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-01-01
  • iOS schem與Universal Link 調(diào)試時踩坑解決記錄

    iOS schem與Universal Link 調(diào)試時踩坑解決記錄

    這篇文章主要為大家介紹了iOS schem與Universal Link 調(diào)試時踩坑解決記錄,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-01-01
  • 如何去掉Xcode工程中某種類型的警告

    如何去掉Xcode工程中某種類型的警告

    這篇文章主要給大家介紹了關(guān)于如何去掉Xcode工程中某種類型的警告,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Xcode具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • iOS實(shí)現(xiàn)攝像頭實(shí)時采集圖像

    iOS實(shí)現(xiàn)攝像頭實(shí)時采集圖像

    這篇文章主要為大家詳細(xì)介紹了iOS實(shí)現(xiàn)攝像頭實(shí)時采集圖像,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-04-04
  • iOS利用NSAttributedString實(shí)現(xiàn)圖文混排效果示例

    iOS利用NSAttributedString實(shí)現(xiàn)圖文混排效果示例

    iOS7以后,因?yàn)門extKit的強(qiáng)大,可以用NSAttributedString很方便的實(shí)現(xiàn)圖文混排(主要是利用了NSTextAttachment),所以下面這篇文章主要給大家介紹了關(guān)于iOS利用NSAttributedString實(shí)現(xiàn)圖文混排效果的相關(guān)資料,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-10-10
  • IOS客戶端接入微信支付

    IOS客戶端接入微信支付

    對于一個ios的app,如果有一些虛擬的商品或者服務(wù)需要通過在線支付來收費(fèi)的話,一般有幾種主流的選擇。如果是通過APP調(diào)用支付平臺APP的思路的話,一個是調(diào)起支付寶客戶端,一個則是調(diào)起微信支付。本文給大家分享ios客戶端接入微信支付,需要的朋友可以參考下
    2015-09-09
  • iOS App開發(fā)中的UISegmentedControl分段組件用法總結(jié)

    iOS App開發(fā)中的UISegmentedControl分段組件用法總結(jié)

    UISegmentedControl主要被用來制作分頁按鈕或添加跳轉(zhuǎn)到不同位置的標(biāo)簽,這里我們就來看一下iOS App開發(fā)中的UISegmentedControl分段組件用法總結(jié),需要的朋友可以參考下
    2016-06-06
  • iOS算法教程之分段截取常數(shù)示例

    iOS算法教程之分段截取常數(shù)示例

    這篇文章主要給大家介紹了關(guān)于iOS算法教程之分段截取常數(shù)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起看看吧。
    2018-01-01
  • 僅幾行iOS代碼限制TextField輸入長度

    僅幾行iOS代碼限制TextField輸入長度

    這篇文章主要為大家詳細(xì)介紹了通過幾行iOS代碼限制TextField輸入長度的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-09-09
  • iOS開發(fā)之離線地圖核心代碼

    iOS開發(fā)之離線地圖核心代碼

    本文給大家分享ios開發(fā)之離線地圖核心代碼,代碼簡單易懂,非常實(shí)用,有需要的朋友參考下
    2016-04-04

最新評論

清流县| 环江| 来凤县| 正阳县| 泉州市| 钦州市| 扶风县| 屏南县| 盐边县| 丹巴县| 仁寿县| 安仁县| 安丘市| 兴安县| 西吉县| 凤山市| 吉木乃县| 当涂县| 甘南县| 红桥区| 天水市| 乳源| 阜康市| 新绛县| 伽师县| 县级市| 乌兰浩特市| 额敏县| 湖北省| 磐石市| 鄯善县| 余庆县| 无为县| 库伦旗| 云龙县| 丹阳市| 靖远县| 钟祥市| 吴忠市| 龙井市| 桑日县|