中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

【Objective-C】OC中自定義對象的歸檔基本概念和使用方法(實現NSCoding協議)

發布時間:2020-07-29 07:59:33 來源:網絡 閱讀:564 作者:jiangqq900826 欄目:移動開發

平時使用中,我們通常需要通過對自定義對象進行歸檔處理,自定義對象要進行歸檔,需要去實現NSCoding協議.

NSCoding協議有兩個方法,encodeWithCoder方法對對象的屬性數據做編碼處理。

                                             initWithCoder方法解碼歸檔數據來進行初始化對象。

【Objective-C】OC中自定義對象的歸檔基本概念和使用方法(實現NSCoding協議)

實現NSCoding協議后,就能通過NSKeyedArchiver進行歸檔

下面來看下例子代碼:

Person.h頭文件代碼:

#import <Foundation/Foundation.h>  @interface Person : NSObject <NSCoding> @property(nonatomic,copy)NSString *name; @property(nonatomic,copy)NSString *email; @property(nonatomic,copy)NSString *password; @property(nonatomic,assign)int age; @end
Person.m實現代碼:

#import "Person.h" #define AGE @"age" #define NAME @"name" #define EMAIL @"email" #define PASSWORD @"password" @implementation Person //對對象屬性進行編碼方法 - (void)encodeWithCoder:(NSCoder *)aCoder{     [aCoder encodeInt:_age forKey:AGE];     [aCoder encodeObject:_name forKey:NAME];     [aCoder encodeObject:_email forKey:EMAIL];     [aCoder encodeObject:_password forKey:PASSWORD]; } //對對象屬性進行解碼方法 - (id)initWithCoder:(NSCoder *)aDecoder{     self=[super init];     if (self!=nil) {         _age=[aDecoder decodeIntForKey:AGE];         _name=[[aDecoder decodeObjectForKey:NAME]copy];         _email=[[aDecoder decodeObjectForKey:EMAIL]copy];         _password=[[aDecoder decodeObjectForKey:PASSWORD]copy];              }     return self; } -(void)dealloc{     [_name release];     [_email release];     [_password release];     [super dealloc]; }
main.m函數代碼:

#import <Foundation/Foundation.h> #import "Person.h" int main(int argc, const char * argv[]) {      @autoreleasepool {         Person *person=[[Person alloc]init];         person.name=@"jack";         person.age=20;         person.email=@"jack@163.com";         person.password=@"12345";         NSString *homePath=NSHomeDirectory();         NSString *srcPath=[homePath stringByAppendingPathComponent:@"Desktop/person.archiver"];         BOOL success=[NSKeyedArchiver archiveRootObject:person toFile:srcPath];         if (success) {             NSLog(@"歸檔自定義對象成功.");         }                  //還原數據         Person *result= [NSKeyedUnarchiver unarchiveObjectWithFile:srcPath];         NSLog(@"name=%@",result.name);         NSLog(@"age=%d",result.age);         NSLog(@"email=%@",result.email);         NSLog(@"password=%@",result.password);     }     return 0; }
運行截圖:

【Objective-C】OC中自定義對象的歸檔基本概念和使用方法(實現NSCoding協議)

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

冷水江市| 镶黄旗| 乐清市| 岑巩县| 南召县| 三明市| 彩票| 攀枝花市| 老河口市| 陵川县| 额敏县| 连城县| 宁武县| 武义县| 宣汉县| 行唐县| 姜堰市| 兴山县| 桑植县| 屯昌县| 平定县| 奉贤区| 苏尼特左旗| 阳信县| 吉水县| 龙口市| 吉林省| 凤台县| 财经| 韶关市| 大田县| 北川| 象州县| 盘锦市| 亚东县| 仙居县| 乐至县| 富锦市| 乐业县| 乌审旗| 沁阳市|