本地存储数据--解归档

在model文件的.m文件中对模型中的属性字段做下列操作:

- (void)encodeWithCoder:(NSCoder *)aCoder
{
    [aCoder encodeObject:self.orderid forKey:@"orderid"];
    [aCoder encodeInteger:self.busid forKey:@"busid"];
    [aCoder encodeObject:self.mobile forKey:@"mobile"];
    [aCoder encodeInteger:self.sitefrom forKey:@"sitefrom"];
    [aCoder encodeFloat:self.distance forKey:@"distance"];
}
- (id)initWithCoder:(NSCoder *)aDecoder
{
    if (self = [super init]) {
        self.orderid = [aDecoder decodeObjectForKey:@"orderid"];
        self.busid = [aDecoder decodeIntegerForKey:@"busid"];
        self.mobile = [aDecoder decodeObjectForKey:@"mobile"];
        self.sitefrom = [aDecoder decodeIntegerForKey:@"sitefrom"];
        self.distance = [aDecoder decodeFloatForKey:@"distance"];
    }
    return self;
}

如果app中使用了MJExtension框架,该框架已经为我们实现了解归档操作,则不需要写上述代码,只需要在.m文件中导入头文件”MJExtension”,然后在.m文件的@implementation与@end之间添加一句MJCodingImplementation代码 就OK.

将数据持久化到本地:

//保存数据
    [NSKeyedArchiver archiveRootObject:_ticketArray toFile:[self savePath]];
- (NSString *)savePath
{
    NSString *path = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)lastObject]stringByAppendingPathComponent:@"ticketArray.plist"];
    return path;
}

取出本地存储的数据:

//取数据:
    NSMutableArray *arr = [NSKeyedUnarchiver unarchiveObjectWithFile:[self savePath]];
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1、通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SD...
    阳明AI阅读 16,033评论 3 119
  • 1.ios高性能编程 (1).内层 最小的内层平均值和峰值(2).耗电量 高效的算法和数据结构(3).初始化时...
    欧辰_OSR阅读 29,795评论 8 265
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,174评论 1 32
  • 郑爽,这两个大字,在我们这阶段,估计没有多少人不认识这名字,如果不认识,那也不出奇。 其实,是在这一个暑假期里我才...
    简单又平凡阅读 369评论 0 4
  • 就 不需要任何烦心事全部倾诉出来啊 这样 别人才会对你保留所有好奇 总要慢慢了解你靠近你 想要知道的更多
    我帅爆了阅读 132评论 0 0