91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

【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

叶城县| 浦北县| 洪泽县| 将乐县| 凌云县| 永康市| 大埔区| 大足县| 兴城市| 赤水市| 荥阳市| 广水市| 曲麻莱县| 西畴县| 左云县| 辰溪县| 洛浦县| 涿鹿县| 江门市| 龙泉市| 镇赉县| 龙陵县| 襄樊市| 龙口市| 台山市| 阿拉善右旗| 丘北县| 丹江口市| 岑巩县| 沛县| 横山县| 五莲县| 揭东县| 阳泉市| 稻城县| 高陵县| 东宁县| 济源市| 伊宁市| 通州区| 海淀区|