美文网首页
NSUserDefault轻量级数据库

NSUserDefault轻量级数据库

作者: yaya_pangdun | 来源:发表于2016-07-22 17:09 被阅读49次

1. 了解NSUserDefaults以及它可以直接存储的类型

NSUserDefaults是一个单例,在整个程序中只有一个实例对象,他可以用于数据的永久保存,而且简单实用,这是它可以让数据自由传递的一个前提,也是大家喜欢用它保存简单数据的一个主要原因。
NSUserDefaults支持的类型

  • NSNumber
  • NSString
  • NSDate
  • NSArray
  • NSDictionary
  • BOOL

2. 简单实用

NSString *hello = @"Hello world";
NSUserDefault *default = [NSUserDefault standardUserDefaults];
[default setObject:hello forKey:@"user_hello"];

NSString *hello = [default objectForKey:@"user_hello"];

3. 自定义数据存储

@interface Student : NSObject <NSCoding> //实现协议NSCoding
  @property (nonatomic, copy) NSString *name;
  @property (nonatomic, copy) NSString *studentId;
  @property (nonatomic, copy) NSString *sex;
@end

.m中实现协议方法

@implementation Student
-(void)encodeWithCoder:(NSCoder *)aCoder
{
    [aCoder encodeObject:self.name forKey:@"name"];
    [aCoder encodeObject:self.studentId forKey:@"studentId"];
    [aCoder encodeObject:self.sex forKey:@"sex"];
}

-(id)initWithCoder:(NSCoder *)aDecoder
{
    if (self = [super init]) {
        self.name = [aDecoder decodeObjectForKey:@"name"];
        self.studentId = [aDecoder decodeObjectForKey:@"studentId"];
        self.sex = [aDecoder decodeObjectForKey:@"sex"];
    }
    return self;
}
@end

将自定义的数据转化为NSData数据

Student *student = [[Student alloc] init];
NSData *data = [NSKeyedArchiver archivedDataWithRootObject:student];
//转化为NSData之后就可以存到NSUserDefault中了

数据解码

Student *student = [NSKeyedUnarchiver unarchiveObjectWithData:data];

相关文章

  • iOS开发-数据持久化-1

    属性列表、 NSUserDefault、 归档archive、 数据库 属性列表 属性列表是一种明文的轻量级存储方...

  • NSUserDefault轻量级数据库

    1. 了解NSUserDefaults以及它可以直接存储的类型 NSUserDefaults是一个单例,在整个程序...

  • iOS数据持久化

    1、NSUserDefault 2、文件:plist、归档、写沙盒 3、数据库:fmdb、coreData

  • NSUserDefault使用

    Apple官方说明 NSUserDefault 是什么? 个人理解使用户保存一些用户习惯,用于轻量级数据的持久话,...

  • iOS的FMDB数据库使用

    在iOS开发中,关于本地数据库的类型,大致分为四种:Plist和NSUserDefault(轻量型数据库),...

  • 谈谈大家熟悉的NSUserDefault

    对于NSUserDefault,做过iOS开发的人肯定不会陌生,它就是持久化数据的一种方式,主打轻量级的用户配置信...

  • iOS端数据库解决方案分析

    为什么要用数据库 iOS端持久化的方案选择比较多,NSUserDefault, Keychain, File, s...

  • 数据持久化

    iOS中持久化方案有很多,例如:NSUserDefault、KeyChain、File,以及基于数据库的无数子方案...

  • iOS持久化存储方案

    概要 iOS常用的持久化存储方案一般有:NSUserDefault、Keychain,File,数据库等几种方案。...

  • iOS sqlite3数据库使用复习

    iOS APP的数据存储方式有很多,NSUserDefault、plist、归档存到文本文件、sqlite3数据库...

网友评论

      本文标题:NSUserDefault轻量级数据库

      本文链接:https://www.haomeiwen.com/subject/dmjijttx.html