IOS_归档与解档
2015-12-19 15:49
465 查看
定义学生模型类(Student):
模型 .h 文件
实现操作:
模型 .h 文件
@interface Student : NSObject<NSCoding> @property (strong, nonatomic) NSDictionary *character; @property (assign, nonatomic) NSInteger age; @property (copy, nonatomic) NSString *name; @end模型 .m 文件
@implementation Student - (instancetype)initWithCoder:(NSCoder *)aDecoder{ if (self = [super init]) { self.character = [aDecoder decodeObjectForKey:@"character"]; self.age = [aDecoder decodeIntegerForKey:@"age"]; self.name = [aDecoder decodeObjectForKey:@"name"]; } return self; } - (void)encodeWithCoder:(NSCoder *)aCoder{ [aCoder encodeObject:self.character forKey:@"character"]; [aCoder encodeInteger:self.age forKey:@"age"]; [aCoder encodeObject:self.name forKey:@"name"]; } @end
实现操作:
// 归档存值 - (BOOL)saveStudent:(Student *)student{ NSMutableData *data = [[NSMutableData alloc] init]; NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc] initForWritingWithMutableData:data]; [archiver encodeObject:student forKey:@"Student_Key"]; [archiver finishEncoding]; return [data writeToFile:[self getFilePathWithModelKey:@"Data_Name"] atomically:YES]; } // 解档取值 - (Student *)takeOut{ NSData *_data = [[NSData alloc] initWithContentsOfFile:[self getFilePathWithModelKey:@"Data_Name"]]; NSKeyedUnarchiver *unarchiver = [[NSKeyedUnarchiver alloc] initForReadingWithData:_data]; Student *mStudent = [unarchiver decodeObjectForKey:@"Student_Key"]; [unarchiver finishDecoding]; return mStudent; } // 得到Document目录 -(NSString *) getFilePathWithModelKey:(NSString *)modelkey { NSArray *array = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); return [[array objectAtIndex:0] stringByAppendingPathComponent:modelkey]; }
相关文章推荐
- (NO.00005)iOS实现炸弹人游戏(一):游戏的整体规划设计
- (NO.00005)iOS实现炸弹人游戏(一):游戏的整体规划设计
- (NO.00005)iOS实现炸弹人游戏(一):游戏的整体规划设计
- ios开发--字典转模型
- iOS经典开源库
- ios facebook 开源动画 pop 常用动画
- iOS Json解析中特殊字符串('\' '\r' '\n' ' ' 等)处理
- iOS中的ARC和MRC环境下的单例设计模式的分析
- iOS 文件管理
- iOS剩余存储空间
- iOS开发,初探离屏渲染
- ios7 push/pop转场动画
- iOS Programming 101: Record and Play Audio using AVFoundation Framework
- iOS中崩溃调试的使用和技巧总结 韩俊强的博客
- iOS崩溃调试的使用和技巧总结
- ios 友盟集成分享 细节
- Expected identifier or '(' Unknown type name 'NSString'
- iOS开发正则表达式的使用
- storyboard xib下label怎么自适应宽度高度
- ios Foundation框架中的可变和不可变对象NSArray 和NSMutableArray(二)