文档章节

NSUserDefaults数据存储

Lambda8421
 Lambda8421
发布于 2015/09/15 17:25
字数 238
阅读 58
收藏 1
//对于数据的存储:
//当需要存储的数据是自定义类的对象时,不管是放在NSArray或者NSDcitionary中,自定义类使用NSUserDefaults存储时,都要
//继承NSCoding协议

//SearchArticleModel.h文件
@interface SearchArticleModel : NSObject<NSCoding>{
    @property (nonatomic, assign) NSInteger top;
}

//SearchArticleModel.m文件
@implementation SearchArticleModel
- (id)initWithCoder:(NSCoder *)aDecoder{
    self = [super init];
    if (self) {
        self.top = [[aDecoder decodeObjectForKey:@"top"] integerValue];
    }
    return self;
}

- (void)encodeWithCoder:(NSCoder *)aCoder{
    [aCoder encodeObject:[NSString stringWithFormat:@"%ld",(long)self.top] forKey:@"top"];
}
@end

//归档和解档的实现方法
//加载最新数据后归档
//articleArr中存储数组
- (void)archiveObject{
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    NSMutableArray *articleArchiveArr = [[NSMutableArray alloc] init];
    for (SearchArticleModel *recommendedAM in articleArr) {   
        NSData *recommendedObj = [NSKeyedArchiver archivedDataWithRootObject:recommendedAM];
        [articleArchiveArr addObject:recommendedObj];
    }
    [defaults setObject:articleArchiveArr forKey:@"articleArr"];
    [defaults synchronize];
}

//加载界面后解档
//数据放在articleArr数组中
- (void)unarchiveObject{
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    NSMutableArray *recommendArticleModelArr = [[NSMutableArray alloc] init];
    for (NSData *data in [defaults objectForKey:@"articleArr"]) {
       SearchArticleModel *recommendArticleModel  = [[SearchArticleModel alloc] init];
       recommendArticleModel = [NSKeyedUnarchiver unarchiveObjectWithData:data];
       [articleArr addObject:recommendArticleModel];
    }
}

//附另一种解决方案 
http://www.crifan.com/store_save_array_of_custom_object_class_into_nsuserdefaults_in_iphone_ios/
http://www.crifan.com/nsuserdefaults_sometime_occasion_can_not_save_data_correctly/


© 著作权归作者所有

共有 人打赏支持
Lambda8421
粉丝 10
博文 121
码字总数 121640
作品 0
闸北
程序员
私信 提问
NSUserDefaults 简介

NSUserDefaults适合存储轻量级的本地数据,一些简单的数据(NSString类型的)例如密码,网址等,NSUserDefaults肯定是首选,但是如果我们自定义了一个对象,对象保存的是一些信息,这时候就不...

云上飞飞
2016/07/12
5
0
iOS数据持久化之使用NSUserDefaults存储数据

iOS数据持久化之使用NSUserDefaults存储数据 作者: 发布日期:2014-09-26 21:04:37 Tag标签:数据 1.用处:NSUserDefaults用来存储类似用户的配置、程序设置信息等这些的数据 iOS下可以使用...

Bob_Zheng
2015/11/25
14
0
NSUserDefaults 简介,使用 NSUserDefaults 存储自定义对象

一、了解NSUserDefaults以及它可以直接存储的类型 NSUserDefaults是一个单例,在整个程序中只有一个实例对象,他可以用于数据的永久保存,而且简单实用,这是它可以让数据自由传递的一个前提...

lady-奕奕
2014/07/24
0
17
iOS中单例NSUserDefaults的使用 (转)

一、了解NSUserDefaults以及它可以直接存储的类型 NSUserDefaults是一个单例,在整个程序中只有一个实例对象,他可以用于数据的永久保存,而且简单实用,这是它可以让数据自由传递的一个前提...

Dumplings
2016/04/28
29
0
NSUserDefaults浅谈

本地存储数据简单的说有三种方式:数据库、NSUserDefaults和文件。 NSUserDefaults用于存储数据量小的数据,例如用户配置。并不是所有的东西都能往里放的,只支持:NSString,NSNumber, NSDa...

2016/08/25
3
0

没有更多内容

加载失败,请刷新页面

加载更多

npm安装教程

一、使用之前,我们先来掌握3个东西是用来干什么的。 npm: Nodejs下的包管理器。 webpack: 它主要的用途是通过CommonJS的语法把所有浏览器端需要发布的静态资源做相应的准备,比如资源的合并...

Bob2100
12分钟前
0
0
Failure to find net.sf.json-lib:json-lib:jar:2.2.2

Could not resolve dependencies for project com.platform:platform-gateway:jar:1.0: Failure to find net.sf.json-lib:json-lib:jar:2.2.2 in http://maven.aliyun.com/nexus/content/gro......

SummerGao
15分钟前
0
0
netty 系列博客

https://blog.csdn.net/tjreal/article/list/2?

Java搬砖工程师
17分钟前
0
0
《大话数据结构》读后总结(二)

一、数据结构基本概念 1. 数据类型 数据类型:是指一组性质相同的值的集合及定义在此集合上的一些操作的总称。 在C语言中,按照取值的不同,数据类型可以分为两类: 原子类型:是不可以再分解...

徐曙辉
21分钟前
4
0
数据清理的终极指南

我花了几个月的时间分析来自传感器、调查及日志等相关数据。无论我用多少图表,设计多么复杂的算法,结果总是会与预期不同。更糟糕的是,当你向首席执行官展示你的新发现时,他/她总会发现缺...

阿里云官方博客
23分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部