首页 > 其他 > 详细

NSUserDefaults数据存储

时间:2015-09-15 18:34:14      阅读:202      评论:0      收藏:0      [点我收藏+]
//对于数据的存储:
//当需要存储的数据是自定义类的对象时,不管是放在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];
    }
}


NSUserDefaults数据存储

原文:http://my.oschina.net/u/1782374/blog/506422

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!