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

本文介绍了iOS中五种数据保存方式:NSUserDefaults、归档、文件、数据库(CoreData)和KeyChain。强调了数据库和CoreData适合大量数据的高效存储,而NSUserDefaults适用于少量设置数据的保存。KeyChain作为最安全的单向加密存储,即使删除应用数据仍存在。文中还给出了NSUserDefaults自动登录功能的代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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

0bf0de2b4aa14c719af8e287bfe7f6c4.jpg    

b607061c834244caa18d2fee9a21d45b.jpg

三、归档

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

(2)以类的形式保存

六、KeyChain

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值