NSUserDefaults数据存储

//对于数据的存储:
//当需要存储的数据是自定义类的对象时,不管是放在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];
    }
}
时间: 2024-08-04 20:18:59

NSUserDefaults数据存储的相关文章

iOS Plist NSUserDefaults 数据存储

@import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css); NSString *home = NSHomeDirectory(); NSString *docPath = [home stringByAppendingPathComponent:@"Documents"]; NSString *filePat

IOS的四种数据存储方式及优劣

IOS有四种经常使用数据存储方式: 第一种方法:用NSUserDefaults存储配置信息 NSUserDefaults被设计用来存储设备和应用的配置信息.它通过一个工厂方法返回默认的.也是最经常使用到的实例对象. 这个对象中储存了系统中用户的配置信息,开发人员能够通过这个实例对象对这些已有的信息进行改动.也能够依照自己的需求创建新的配置项. 他实际上是存储于文件沙盒中的一个.plist文件,而且没有被系统加密,仅仅是ios6以后不是存于经常使用的文档文件夹下,所以不破解系统是看不到该文件的.所

IOS的四种数据存储方式和优略

IOS有四种常用数据存储方式: 第一种方法:用NSUserDefaults存储配置信息 NSUserDefaults被设计用来存储设备和应用的配置信息,它通过一个工厂方法返回默认的.也是最常用到的实例对象.这个对象中储存了系统中用户的配置信息,开发者可以通过这个实例对象对这些已有的信息进行修改,也可以按照自己的需求创建新的配置项.他在IOS6之后已经在文件沙盒中看不到它的信息了,所以可以存储机密信息(用户名和密码)密码,防止手机系统被破解后看你的沙盒子文件.一般这种方法存储少量信息,若是存储大量

NSUserDefaults(数据存储)

NSUserDefaults适合存储轻量级的本地数据,比如要保存一个登陆界面的数据,用户名.密码之类的,个人觉得使用NSUserDefaults是首选.下次再登陆的时候就可以直接从NSUserDefaults里面读取上次登陆的信息咯. 因为如果使用自己建立的plist文件什么的,还得自己显示创建文件,读取文件,很麻烦,而是用NSUserDefaults则不用管这些东西,就像读字符串一样,直接读取就可以了. NSUserDefaults支持的数据格式有:NSNumber(Integer.Float

NSUserDefaults 做简单数据存储,实现全局变量持久化.

NSUserDefaults适合存储轻量级的本地数据,比如要保存一个登陆界面的数据,用户名.密码之类的,个人觉得使用NSUserDefaults是首选.下次再登陆的时候就可以直接从NSUserDefaults里面读取上次登陆的信息. 因为如果使用自己建立的plist文件什么的,还得自己显示创建文件,读取文件,很麻烦,而是用NSUserDefaults则不用管这些东西,就像读字符串一样,直接读取就可以了. NSUserDefaults支持的数据格式有:NSNumber(Integer.Float.

IOS中NSUserDefaults的用法(轻量级本地数据存储)

iOS数据保存 IOS中NSUserDefaults的用法(轻量级本地数据存储) IOS中NSUserDefaults的用法(轻量级本地数据存储),布布扣,bubuko.com

IOS中NSUserDefaults的用法(轻量级本地数据存储) (转)

NSUserDefaults适合存储轻量级的本地数据,比如要保存一个登陆界面的数据,用户名.密码之类的,个人觉得使用NSUserDefaults是首选.下次再登陆的时候就可以直接从NSUserDefaults里面读取上次登陆的信息咯. 因为如果使用自己建立的plist文件什么的,还得自己显示创建文件,读取文件,很麻烦,而是用NSUserDefaults则不用管这些东西,就像读字符串一样,直接读取就可以了. NSUserDefaults支持的数据格式有:NSNumber(Integer.Float

IOS开发—数据存储(直接写入、NSUserDefaults、NSkeyedArchiver)

数据存储(直接写入.NSUserDefaults.NSkeyedArchiver) ios中常用文件存取的方法有: 1.直接写文件的方式,可以存储的对象有NSString.NSArray.NSDictionary.NSData.NSNumber,数据全部存放在一个属性列表文件(*.plist文件)中. 2.NSUeserDefaults(偏好设置),用来存储应用设置信息,文件放在perference目录下. 3.归档操作(NSkeyedArchiver),不同于前面两种,它可以把自定义对象存放在

iOS开发——数据持久化&amp;使用NSUserDefaults来进行本地数据存储

使用NSUserDefaults来进行本地数据存储 NSUserDefaults适合存储轻量级的本地客户端数据,比如记住密码功能,要保存一个系统的用户名.密码.使用NSUserDefaults是首选.下次再登陆的时候就可以直接从NSUserDefaults里面读取上次登陆的信息. 一般来说本地存储数据我们还可以是用SQlite数据库,或者使用自己建立的plist文件什么的,但这还得自己显示创建文件,读取文件,很麻烦,而是用NSUserDefaults则不用管这些东西,就像读字符串一样,直接读取就