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

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

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

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

时间: 2024-07-28 16:49:36

数据保存(永久保存)方式的相关文章

【学习总结】iOS 数据保存几种方式总结

在iOS开发过程中,不管是做什么应用,都会碰到数据保存的问题.将数据保存到本地,能够让程序的运行更加流畅,不会出现让人厌恶的菊花形状,使得用户体验更好.下面介绍一下数据保存的方式: NSKeyedArchiver:采用归档的形式来保存数据,该数据对象需要遵守NSCoding协议,并且该对象对应的类必须提供encodeWithCoder:和initWithCoder:方法.前一个方法告诉系统怎么对对象进行编码,而后一个方法则是告诉系统怎么对对象进行解码. NSUserDefaults:用来保存应用

iOS保存数据的4种方式

在iOS开发过程中,不管是做什么应用,都会碰到数据保存的问题.将数据保存到本地,能够让程序的运行更加流畅,不会出现让人厌恶的菊花形状,使得用户体验更好.下面介绍一下数据保存的方式: 1.NSKeyedArchiver:采用归档的形式来保存数据,该数据对象需要遵守NSCoding协议,并且该对象对应的类必须提供encodeWithCoder:和initWithCoder:方法.前一个方法告诉系统怎么对对象进行编码,而后一个方法则是告诉系统怎么对对象进行解码.例如对Possession对象归档保存.

ios1学习笔记-保存数据的4种方式

在iOS开发过程中,不管是做什么应用,都会碰到数据保存的问题.将数据保存到本地,能够让程序的运行更加流畅,不会出现让人厌恶的菊花形状,使得用户体验更好.下面介绍一下数据保存的方式: 1.NSKeyedArchiver:采用归档的形式来保存数据,该数据对象需要遵守NSCoding协议,并且该对象对应的类必须提供encodeWithCoder:和initWithCoder:方法.前一个方法告诉系统怎么对对象进行编码,而后一个方法则是告诉系统怎么对对象进行解码.例如对Possession对象归档保存.

大数据技术之_19_Spark学习_02_Spark Core 应用解析+ RDD 概念 + RDD 编程 + 键值对 RDD + 数据读取与保存主要方式 + RDD 编程进阶 + Spark Core 实例练习

第1章 RDD 概念1.1 RDD 为什么会产生1.2 RDD 概述1.2.1 什么是 RDD1.2.2 RDD 的属性1.3 RDD 弹性1.4 RDD 特点1.4.1 分区1.4.2 只读1.4.3 依赖1.4.4 缓存1.4.5 CheckPoint第2章 RDD 编程2.1 RDD 编程模型2.2 RDD 创建2.2.1 由一个已经存在的 Scala 集合创建,即集合并行化(测试用)2.2.2 由外部存储系统的数据集创建(开发用)2.3 RDD 编程2.3.1 Transformatio

linux 防火墙开启80端口永久保存

经常使用CentOS的朋友,可能会遇到和我一样的问题.开启了防火墙导致80端口无法访问,刚开始学习centos的朋友可以参考下. 经常使用CentOS的朋友,可能会遇到和我一样的问题.最近在Linux CentOS防火墙下安装配置 ORACLE 数据库的时候,总显示因为网络端口而导致的EM安装失败,遂打算先关闭一下CentOS防火墙.偶然看到CentOS防火墙的配置操作说明,感觉不错.执 行”setup”命令启动文字模式配置实用程序,在”选择一种工具”中选择”防火墙配置”,然后选择”运行工具”按

程序中保存状态的方式之ViewState

程序中保存状态的方式有以下几种: 1.Application 2.Cookie 3.Session 4.ViewState:ViewState是保存状态的方式之一,ViewState实际就是一个Hidden字段,但是它是服务器控件状态保存的基础如下代码 1 <form method="post" action="./pay.aspx" id="form1"> 2 <div class="aspNetHidden&quo

CentOS7/Linux 使用本地光驱制作yum源并且永久保存

小编使用的是在ESXI上挂载的虚拟机 (VsPhereClient5.5),挂载光驱比较简单. 如阅读者使用其它软件安装的虚拟机,请自行百度查询挂载光驱方式. (小编就不在阐述VsPhere挂载光驱的方式,直接上正文!!!) 挂载光驱及永久保存步骤: [[email protected] ~]# mkdir cdrom    先建立一份空目录[[email protected] ~]# ls -l /dev/sr*     查询系统是否其它的外置设备   (*):是通配符brw-rw----.

HTML5使用local storage存储的数据是如何保存在本地的

HTML5使用local storage存储的数据是如何保存在本地的?(我使用的是chrome浏览器,chrom浏览器是用sqlite来保存本地数据的) HTML5 的local storage 是通过浏览器在本地存储的数据. 基本使用方法如下: <script type="text/javascript"> localStorage.firstName = "Tom"; alert(localStorage.firstName); </scrip

trustbox文件怎么复制,永久保存

trustbox文件怎么复制,永久保存? 需要破解后复制,永久保存. 点击加QQ:909486402 首先我们打开trustbox文档,如果我们需要把trustbox和trustbox的文件复制到D盘, 我们可以用鼠标的左键点击C盘中的trustbox文件, 然后按住ctrl键,再点击与trustbox文件. 怎样复制文件? 然后,我们用鼠标的左键点击编辑,在弹出的方框中点击复制,怎样复制文件? 3然后,我们再打开D盘,怎样复制文件? 步骤阅读4在D盘中点击编辑,这时会弹出一个方框. 相关阅读: