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

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"

@interfaceViewController ()

@property (weak, nonatomic) IBOutlet UITextField*username;

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

@implementationViewController- (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

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

html将数据永久保存起来,数据保存(永久保存)方式(示例代码)相关推荐

  1. 批量插入数据库语句java_java相关:MyBatis批量插入数据到Oracle数据库中的两种方式(实例代码)...

    java相关:MyBatis批量插入数据到Oracle数据库中的两种方式(实例代码) 发布于 2020-7-22| 复制链接 本文通过实例代码给大家分享了MyBatis批量插入数据到Oracle数据库 ...

  2. 电竞英雄联盟数据API接口 - 【比赛列表】API调用示例代码

    电竞英雄联盟数据API接口 - [比赛列表]API调用示例代码 分享使用 野子科技数据 https://www.xxe.io/ 接口调用的示例代码,今天接的是英雄联盟的[比赛列表]接口,跟之前不同的是 ...

  3. 电竞Dota2数据API接口 - 【联赛列表】API调用示例代码

    分享使用接口调用的示例代码,Dota2的[联赛列表]接口. import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.annotati ...

  4. 足球数据API接口 - 【球员资料】API调用示例代码

    分享下近期使用[球员资料]接口调用的示例代码. 近期感觉并没有遇到什么难点,很易用,另外作为足球比分数据API接口还是挺全面的 import javax.xml.bind.JAXBContext; i ...

  5. 电竞英雄联盟数据API接口 - 【联赛列表】API调用示例代码

    分享使用接口调用的示例代码,今天接的是英雄联盟的[联赛列表]接口,跟之前不同的是,接口返回的是Json数据,这里使用Fastjson来解析. import com.alibaba.fastjson.J ...

  6. 电竞英雄联盟数据API接口 - 【选手基本信息】API调用示例代码

    分享使用接口调用的示例代码,接的是英雄联盟的[选手基本信息]接口. import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.anno ...

  7. 篮球数据API接口 - 【赛程赛果】API调用示例代码

    分享使用接口调用的示例代码,今天来分享一个篮球数据[赛程赛果]接口 import javax.xml.bind.JAXBContext; import javax.xml.bind.Unmarshal ...

  8. 电竞Dota2数据API接口 - 【战队列表】API调用示例代码

    分享使用接口调用的示例代码,Dota2的[战队列表]接口. import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.annotati ...

  9. 电竞DOTA2数据API接口 - 【比赛详情】API调用示例代码

    分享使用 野子电竞数据 http://www.xxe.io 接口调用的示例代码,接的是DOTA2的[比赛详情]数据接口. 请求方法: GET https://api.xxe.io/?resource= ...

  10. 电竞LOL数据API接口 - 【即时指数】API调用示例代码

    分享使用接口调用的示例代码,LOL的[即时指数]接口. import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.annotation ...

最新文章

  1. VS 2008 中内存泄露检查
  2. c# asp.net core取当月第一天和最后一天及删除最后一个字符的多种方法
  3. Java.util包中常用的类
  4. 字节跳动---万万没想到之聪明的编辑
  5. Swift傻傻分不清楚系列(八)函数
  6. sap的ides和ecc分别是什么意思
  7. 剑指offer--面试题19
  8. PXE+kickstart——实现网络批量装机
  9. 软件工程项目____搜查令
  10. python赋值运算符_解释一下python中的赋值运算符
  11. AndroidOpenCV摄像头预览旋转90度问题
  12. 2018美日科学家因免疫治疗得诺贝尔生理医学奖|动图展示历年生理学奖
  13. android 5.1一键root工具箱,s大师一键root下载
  14. 【Java】俄罗斯方块带背景音乐
  15. 3900x做服务器性能怎么样,AMD Ryzen 9 3900X评测:向消费级性能王者宝座进发
  16. VLC Player – 自由、开源的跨平台多媒体播放器
  17. 二维码超分效果评价指标
  18. SSM+在线纳新系统 毕业设计-附源码241540
  19. 统计信号处理基础 习题解答1-2
  20. 将linux中显示中文改成英文显示

热门文章

  1. 3.21 refused bequest
  2. [硬件]_ELVE_STLINK下载出现nternal command error问题
  3. 计算机视觉论文-2021-11-03
  4. 短基线(SBL)定位原理及误差模型分析
  5. QoS配置说明(CBWFQ/LLQ/PQ/CQ/WFQ)
  6. win7开机后桌面变成黑色,此window副本不是正版
  7. 使用近场探头和电流探头进行EMI干扰排查
  8. 当img没有图片时候,显示默认图片代码
  9. 计算机九九乘法口诀表,九九乘法口诀表
  10. SSO单点登录之用户认证实践