简单的归档、接档
#import <Foundation/Foundation.h>
@interface model : NSObject
@property(nonatomic,copy)NSString *bookName;
@property(nonatomic,assign)double BookPrice;
@end
//实现委托
@interface model()<NSCoding>
@end
@implementation model
//归档
- (void)encodeWithCoder:(NSCoder *)aCoder{
[aCoder encodeObject:self.bookName forKey:@"BookName"];
[aCoder encodeDouble:self.BookPrice forKey:@"BookPrice"];
}
//解档
- (id)initWithCoder:(NSCoder *)aDecoder{
self=[super init];
if (self) {
self.bookName= [aDecoder decodeObjectForKey:@"BookName"];
self.BookPrice= [aDecoder decodeDoubleForKey:@"BookPrice"];
}
return self;
}
要使用的内中
//归档(OC对象->NSData)
NSMutableData *data = [NSMutableData data];
NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc] initForWritingWithMutableData:data];
//模型数据
model *mo=[[model alloc]init];
mo.bookName=@"APP";
mo.BookPrice=18.5;
[archiver encodeObject:mo forKey:@"mo"];
[archiver finishEncoding];
//Document路径
NSString *paths = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)objectAtIndex:0]stringByAppendingString:@"model.txt"];
if ([data writeToFile:paths atomically:NO]) {
NSLog(@"写入成功");
}
else{
NSLog(@"写入失败");
}
}
- (void)jied{
NSString *paths = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)objectAtIndex:0]stringByAppendingString:@"model.txt"];
//解档
NSMutableData *data = [NSMutableData dataWithContentsOfFile:paths];
NSKeyedUnarchiver *unarchiver = [[NSKeyedUnarchiver alloc] initForReadingWithData:data];
model *mo = [unarchiver decodeObjectForKey:@"mo"];
//完成解档
[unarchiver finishDecoding];