码迷,mamicode.com
首页 > 其他好文 > 详细

数据保存(永久保存)方式

时间:2016-03-18 19:36:02      阅读:195      评论:0      收藏:0      [点我收藏+]

标签:

一、数据保存(永久保存)方式有五种:

1.NSUserDefaults:保存设置数据,bool

2.归档:保存自定义数据

3.文件(plist,txt)

4.数据库和CoreData

5.KeyChain(钥匙串—系统中 钥匙串访问 这个程序)

只有数据库和CoreData才适合用于保存大量的数据(效率高,因为有数据库的算法),其它方式只用于保存少量数据(保存大量数据效率低)。

前四个在沙盒范围内的,第五个即使删除app也存在于手机中。

KeyChain钥匙串是单向加密的,最为安全。

 

二、.NSUserDefaults   

(1)只能保存基本数据类型(int,float,double,BOOL,NSString,NSArray,NSDictionary,NSData,NSURL等),不能保存自定义的对象

(2)用于保存系统的设置型数据,如手机操作系统里面的`通用`设置数据

(3)NSUserDefaults 采取定期保存的机制,具体多久保存一次未知,也可手动采取立即保存(需要调用synchronize)

(4)只用于保存少量数据

(5)以键值对的形式保存

  基本操作:

    //set方法保存(定期保存,如果立即保存,需要调用synchronize)
    [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"key1"];
    [[NSUserDefaults standardUserDefaults] setObject:@[] forKey:@"key2"];//数组

    //强制保存
    [[NSUserDefaults standardUserDefaults] synchronize];
    
    //取值
    [[NSUserDefaults standardUserDefaults] boolForKey:@"key"];
    
    //删除
    [[NSUserDefaults standardUserDefaults] removeObjectForKey:@"key"];

  应用例子:自动登录

#import "ViewController.h"

//自动登录
//#define kAutoLoginKey @"kAutoLoginKey"

@interface ViewController ()
@property (weak, nonatomic) IBOutlet UITextField *username;
@property (weak, nonatomic) IBOutlet UITextField *password;
- (IBAction)login:(id)sender;
- (IBAction)autoLoginBtnClick:(UIButton *)sender;
@end

@implementation ViewController
- (void)viewDidLoad {
    [super viewDidLoad];
    //自动登录
    if ([[NSUserDefaults standardUserDefaults] boolForKey:@"kAutoLoginKey"])
    {
        //发送登录请求,然后请求主页界面的数据
        NSLog(@"发送登录请求");
    }
    else
    {
        //弹出登录界面,登录成功后dismiss掉登录界面
        NSLog(@"弹出登录");
    }
}
- (IBAction)login:(id)sender {
    //若勾选了自动登录按钮,保存用户信息到 NSUserDefaults
}
//自动登录按钮
- (IBAction)autoLoginBtnClick:(UIButton *)sender
{
    //修改按钮状态
    sender.selected = !sender.selected;   
    //保存当前状态
    [[NSUserDefaults standardUserDefaults] setBool:sender.selected forKey:@"kAutoLoginKey"];
    [[NSUserDefaults standardUserDefaults] synchronize];
}
@end

技术分享    技术分享

 

三、归档

(1)能保存自定义的对象,解决NSUserDefaults不能解决的问题

(2)以类的形式保存

 

 

六、KeyChain

 

()以键值对的形式保存数据

数据保存(永久保存)方式

标签:

原文地址:http://www.cnblogs.com/chenyuansheng/p/5293100.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!