html将数据永久保存起来,数据保存(永久保存)方式(示例代码)
一、数据保存(永久保存)方式有五种:
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将数据永久保存起来,数据保存(永久保存)方式(示例代码)相关推荐
- 批量插入数据库语句java_java相关:MyBatis批量插入数据到Oracle数据库中的两种方式(实例代码)...
java相关:MyBatis批量插入数据到Oracle数据库中的两种方式(实例代码) 发布于 2020-7-22| 复制链接 本文通过实例代码给大家分享了MyBatis批量插入数据到Oracle数据库 ...
- 电竞英雄联盟数据API接口 - 【比赛列表】API调用示例代码
电竞英雄联盟数据API接口 - [比赛列表]API调用示例代码 分享使用 野子科技数据 https://www.xxe.io/ 接口调用的示例代码,今天接的是英雄联盟的[比赛列表]接口,跟之前不同的是 ...
- 电竞Dota2数据API接口 - 【联赛列表】API调用示例代码
分享使用接口调用的示例代码,Dota2的[联赛列表]接口. import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.annotati ...
- 足球数据API接口 - 【球员资料】API调用示例代码
分享下近期使用[球员资料]接口调用的示例代码. 近期感觉并没有遇到什么难点,很易用,另外作为足球比分数据API接口还是挺全面的 import javax.xml.bind.JAXBContext; i ...
- 电竞英雄联盟数据API接口 - 【联赛列表】API调用示例代码
分享使用接口调用的示例代码,今天接的是英雄联盟的[联赛列表]接口,跟之前不同的是,接口返回的是Json数据,这里使用Fastjson来解析. import com.alibaba.fastjson.J ...
- 电竞英雄联盟数据API接口 - 【选手基本信息】API调用示例代码
分享使用接口调用的示例代码,接的是英雄联盟的[选手基本信息]接口. import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.anno ...
- 篮球数据API接口 - 【赛程赛果】API调用示例代码
分享使用接口调用的示例代码,今天来分享一个篮球数据[赛程赛果]接口 import javax.xml.bind.JAXBContext; import javax.xml.bind.Unmarshal ...
- 电竞Dota2数据API接口 - 【战队列表】API调用示例代码
分享使用接口调用的示例代码,Dota2的[战队列表]接口. import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.annotati ...
- 电竞DOTA2数据API接口 - 【比赛详情】API调用示例代码
分享使用 野子电竞数据 http://www.xxe.io 接口调用的示例代码,接的是DOTA2的[比赛详情]数据接口. 请求方法: GET https://api.xxe.io/?resource= ...
- 电竞LOL数据API接口 - 【即时指数】API调用示例代码
分享使用接口调用的示例代码,LOL的[即时指数]接口. import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.annotation ...
最新文章
- VS 2008 中内存泄露检查
- c# asp.net core取当月第一天和最后一天及删除最后一个字符的多种方法
- Java.util包中常用的类
- 字节跳动---万万没想到之聪明的编辑
- Swift傻傻分不清楚系列(八)函数
- sap的ides和ecc分别是什么意思
- 剑指offer--面试题19
- PXE+kickstart——实现网络批量装机
- 软件工程项目____搜查令
- python赋值运算符_解释一下python中的赋值运算符
- AndroidOpenCV摄像头预览旋转90度问题
- 2018美日科学家因免疫治疗得诺贝尔生理医学奖|动图展示历年生理学奖
- android 5.1一键root工具箱,s大师一键root下载
- 【Java】俄罗斯方块带背景音乐
- 3900x做服务器性能怎么样,AMD Ryzen 9 3900X评测:向消费级性能王者宝座进发
- VLC Player – 自由、开源的跨平台多媒体播放器
- 二维码超分效果评价指标
- SSM+在线纳新系统 毕业设计-附源码241540
- 统计信号处理基础 习题解答1-2
- 将linux中显示中文改成英文显示
热门文章
- 3.21 refused bequest
- [硬件]_ELVE_STLINK下载出现nternal command error问题
- 计算机视觉论文-2021-11-03
- 短基线(SBL)定位原理及误差模型分析
- QoS配置说明(CBWFQ/LLQ/PQ/CQ/WFQ)
- win7开机后桌面变成黑色,此window副本不是正版
- 使用近场探头和电流探头进行EMI干扰排查
- 当img没有图片时候,显示默认图片代码
- 计算机九九乘法口诀表,九九乘法口诀表
- SSO单点登录之用户认证实践