新建工程
Person.h
//
// Person.h
// 归档和解档
//
// Created by apple on 15/10/26.
// Copyright (c) 2015年 LiuXun. All rights reserved.
//
#import <UIKit/UIKit.h>
/**
归档和解档在开发中很少使用
*/
@interface Person : NSObject<NSCoding>
@property (nonatomic, copy) NSString *name;
@property (nonatomic, assign) int age;
@end
Person.m
//
// Person.m
// 归档和解档
//
// Created by apple on 15/10/26.
// Copyright (c) 2015年 LiuXun. All rights reserved.
//
#import "Person.h"
@implementation Person
/**
归档
*/
-(void)encodeWithCoder:(NSCoder *)aCoder
{
[aCoder encodeObject:_name forKey:@"name"];
[aCoder encodeInt:_age forKey:@"age"];
}
/**
解档
将磁盘上保存的二进制数据转成自定义的对象
*/
-(id)initWithCoder:(NSCoder *)aDecoder
{
if (self = [super init]) {
_name = [aDecoder decodeObjectForKey:@"name"];
_age = [aDecoder decodeIntForKey:@"age"];
}
return self;
}
@end
viewController.m
//
// ViewController.m
// 归档和解档
//
// Created by apple on 15/10/26.
// Copyright (c) 2015年 LiuXun. All rights reserved.
//
#import "ViewController.h"
#import "Person.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
//归档
Person *p = [[Person alloc] init];
p.name = @"张三";
p.age = 23;
[NSKeyedArchiver archiveRootObject:p toFile:@"/Users/apple/Desktop/a.plist"];
// 解档
Person *p1 = [NSKeyedUnarchiver unarchiveObjectWithFile:@"/Users/apple/Desktop/a.plist"];
NSLog(@"%@", p1.name);
}
@end