您的位置:首页 > 移动开发 > IOS开发

iOS --归档存储自定义对象

2016-05-02 21:34 567 查看
#import <Foundation/Foundation.h>

@interface User : NSObject<NSCoding>   //遵循NSCoding协议

/** name */
@property (nonatomic, copy) NSString *name;

/** age */
@property (nonatomic, assign) NSInteger age;

//自定义初始化方法
- (instancetype)initWithName:(NSString *)name age:(NSInteger)age;

@end

-----------

#import "User.h"

@implementation User

//初始化
- (instancetype)initWithName:(NSString *)name age:(NSInteger)age
{
self = [super init];
if (self) {
self.name = name;
self.age = age;
}

return self;
}

//归档
- (void)encodeWithCoder:(NSCoder *)aCoder
{
[aCoder encodeObject:self.name forKey:@"name"];
[aCoder encodeInteger:self.age forKey:@"age"];
}

//反归档
- (instancetype)initWithCoder:(NSCoder *)aDecoder
{
self = [super init];
if (self) {
self.name = [aDecoder decodeObjectForKey:@"name"];
self.age = [aDecoder decodeIntegerForKey:@"age"];
}

return self;
}

@end


//归档 编码
User *user = [[User alloc] initWithName:@"张三" age:18];
NSData *userData = [NSKeyedArchiver archivedDataWithRootObject:user];

//反归档  解码
User *user1 = [NSKeyedUnarchiver unarchiveObjectWithData:userData];
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: