第二十三讲:文件归档与协议
1、对象进行归档操作时需要用到协议NSCoding,前面已经有讲到存档与解档操作,这里引进协议的概念,在协议中实现归档2、创建一个类Person
3、在Person中使用协议NSCoding来实现存档操作
4、在implemetation中实现协议NSCoding的两个方法(必须实现)
5、对象person1归档到data中,data1将解档data;
6、创建person对象,将data1解档的数据赋值给person
Person.h
//
//Person.h
//NSCoding
//
//Created by yusian on 14-1-21.
//Copyright (c) 2014年 yusian. All rights reserved.
//
#import <Foundation/Foundation.h>
@interface Person : NSObject <NSCoding>
@property (retain) NSString * name;
@property int age;
@property (retain) Person * child;
@end
Person.m
//
//Person.m
//NSCoding
//
//Created by yusian on 14-1-21.
//Copyright (c) 2014年 yusian. All rights reserved.
//
#import "Person.h"
@implementation Person
- (void)encodeWithCoder:(NSCoder *)aCoder {
;
;
;
}
- (id)initWithCoder:(NSCoder *)aDecoder {
if (self = ) {
self.age = ;
self.name = ;
self.child = ;
}
return self;
}
@end
main.m
//
//main.m
//NSCoding
//
//Created by yusian on 14-1-21.
//Copyright (c) 2014年 yusian. All rights reserved.
//
#import <Foundation/Foundation.h>
#import "Person.h"
int main(int argc, const char * argv[])
{
@autoreleasepool {
Person * person1 = [ init];
Person * person2 = [ init];
person1.age = 30;
person1.name = @"deny";
person1.child = person2;
NSData * data = ;
;
NSData * data1 = ;
Person * person = ;
NSLog(@"Person %@ age is %d",person.name, person.age);
}
return 0;
}
输出结果:
2014-01-21 22:46:20.541 NSCoding Person deny age is 30
Program ended with exit code: 0
页:
[1]