#import <Foundation/Foundation.h>
@interface TestNScoding : NSObject<NSCoding>
@property (nonatomic, copy) NSString *name;
@property (nonatomic, assign) int nameid;
#define NAME @"name"
#define NAME_ID @"nameid"
#import "TestNScoding.h"
@implementation TestNScoding
//自定义归档必须实现下面两个类
//归档时调用
- (void)encodeWithCoder:(NSCoder *)aCoder{
[aCoder encodeObject:self.name forKey:NAME];
[aCoder encodeInt:self.nameid forKey:NAME_ID];
}
//归档时调用
- (id)initWithCoder:(NSCoder *)aDecoder{
self = [super init];
if (self) {
self.name = [aDecoder decodeObjectForKey:NAME];
self.nameid = [aDecoder decodeIntForKey:NAME_ID];
}
return self;
}
//新建归档文件
NSString *filePath= [self dataPath:@"user.archiver"];
TestNScoding *mTestNScoding = [[TestNScoding alloc] init];
mTestNScoding.name = @"hexinnian";
mTestNScoding.nameid = 150;
//开始归挡归档
BOOL Succesed= [NSKeyedArchiver archiveRootObject:mTestNScoding toFile:filePath];
//解归挡
TestNScoding *TestNScoding2 = [NSKeyedUnarchiver unarchiveObjectWithFile:filePath];
NSLog(@"={%@}=={%d}==",TestNScoding2.name,TestNScoding2.nameid);