成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

iPhone文件操作之NSUserDefaults讀取和寫入自定義對象

移動開發(fā) iOS
iPhone文件操作之NSUserDefaults讀取和寫入自定義對象是本文要介紹的內(nèi)容,主要講述NSUserDefaults讀取和寫入自定義對象,來看本文內(nèi)容。

iPhone文件操作之NSUserDefaults讀取和寫入自定義對象是本文要介紹的內(nèi)容,主要講述NSUserDefaults讀取和寫入自定義對象,不多說,先來看內(nèi)容。NSUserDefaults可以存取一些短小的信息,比如存入再讀出一個字符串到NSUserDefaults

  1. NSString *string = [NSString stringWithString @"hahaha"];     
  2. NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];     
  3. [ud setObject:string forKey:@"myKey"];     
  4. NSString *value;     
  5. value = [ud objectForKey:"myKey"];   

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

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

那怎么辦呢?

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

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

  1. @interface BusinessCard : NSObject <NSCoding>{     
  2.     NSString *_firstName;     
  3.     NSString *_lastName;     
  4. }     
  5. @property (nonatomic, retain) NSString *_firstName;     
  6. @property (nonatomic, retain) NSString *_lastName;     
  7. @end;     
  8.      
  9. @implementation BusinessCard     
  10. @synthesize _firstName, _lastName;     
  11. - (void)dealloc{     
  12.     [_firstName release];     
  13.     [_lastName release];     
  14.     [super dealloc];     
  15. }     
  16. - (id) initWithCoder: (NSCoder *)coder     
  17. {     
  18.     if (self = [super init])     
  19.     {     
  20.         self._firstName = [coder decodeObjectForKey:@"_firstName"];     
  21.         self._lastName = [coder decodeObjectForKey:@"_lastName"];     
  22.     }     
  23.     return self;     
  24. }     
  25. - (void) encodeWithCoder: (NSCoder *)coder     
  26. {     
  27.     [coder encodeObject:_firstName forKey:@"_firstName"];     
  28.     [coder encodeObject:_lastName forKey:@"_lastName"];        
  29. }     
  30. @end   

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

  1. BusinessCard *bc = [[BusinessCard alloc] init];     
  2. NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];     
  3. NSData *udObject = [NSKeyedArchiver archivedDataWithRootObject:bc];     
  4. [ud setObject:udObject forKey:@"myBusinessCard"];     
  5. [bc release];     
  6. udObject = nil;     
  7. udObject = [ud objectForKey:@"myBusinessCard"];     
  8. bc = [NSKeyedUnarchiver unarchiveObjectWithData:udObject] ;  

 

以上的代碼時由另一個程序中截取的,沒有測試過,但意思就是這樣了。如果一個自定義類中由另一個自定義類對象,那么所有嵌套的類都要實現(xiàn)<NSCoding>。

小結(jié):iPhone文件操作之NSUserDefaults讀取和寫入自定義對象的內(nèi)容介紹完了,希望本文對你有所幫助!

責任編輯:zhaolei 來源: 互聯(lián)網(wǎng)
相關(guān)推薦

2011-08-18 09:44:33

iPhone SDK儀表控件UIDialView

2023-07-03 08:29:11

BannerSpringBoot

2009-07-01 14:32:37

JSP文件操作

2011-08-11 11:51:07

iPhone鍵盤

2009-08-10 16:58:45

ASP.NET安裝部署

2011-08-12 18:18:03

iPhone開發(fā)UIPageContr按鈕

2009-08-05 18:01:20

C#自定義異常處理

2021-10-26 10:07:02

鴻蒙HarmonyOS應用

2011-08-02 11:17:13

iOS開發(fā) View

2022-07-15 16:45:35

slider滑塊組件鴻蒙

2022-06-30 14:02:07

鴻蒙開發(fā)消息彈窗組件

2015-02-11 17:49:35

Android源碼自定義控件

2023-08-10 17:14:52

鴻蒙自定義彈窗

2022-06-20 15:43:45

switch開關(guān)鴻蒙

2011-09-08 13:56:41

ASP.NET性能

2022-09-20 07:01:50

對象初始化代碼

2009-11-12 16:14:28

ADO.NET自定義對

2015-02-12 15:33:43

微信SDK

2009-11-09 16:06:53

WCF自定義集合

2021-08-16 14:45:38

鴻蒙HarmonyOS應用
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 亚洲精品日韩一区二区电影 | 四色成人av永久网址 | 天天综合久久 | 久久乐国产精品 | 香蕉婷婷 | 精品国产乱码久久久久久a丨 | 天天干天天干 | 自拍视频在线观看 | 91久久精品一区二区二区 | 亚洲免费一区 | 日韩欧美在线观看 | 看一级黄色毛片 | 欧美一区二区网站 | 欧美日韩亚洲一区 | 欧美日高清视频 | 成人在线视频网址 | av成年人网站 | 亚洲 欧美 在线 一区 | 在线观看久草 | 91在线看片 | 久草在线在线精品观看 | 欧美精品在欧美一区二区少妇 | 91日日| 国产福利在线免费观看 | 99久久精品免费看国产四区 | 影音先锋中文字幕在线观看 | 免费观看a级毛片在线播放 黄网站免费入口 | 一级看片免费视频囗交动图 | 自拍偷拍中文字幕 | 国产激情在线 | 成人在线观看免费观看 | 精品视频一区二区三区在线观看 | 国产精品久久久久久吹潮 | 激情婷婷成人 | 91久久国产综合久久 | 久久宗合色 | 亚洲欧美日韩精品久久亚洲区 | 在线免费观看欧美 | 亚洲一区二区在线视频 | 国产在线观看不卡一区二区三区 | 91麻豆精品国产91久久久久久久久 |