iOS中的数据持久化方式:1.plist 文件 2.偏好设置 3.NSKedArchiver(归档)4.SQLite5.CoreData
下面详细讲一下偏好设置:
/*
1.偏好设置会将所有数据保存到同一个文件中。即preference目录下的一个以此应用包名来命名的plist文件。
2.偏好设置是专门用来保存应用程序的配置信息的,一般不要在偏好设置中保存其他数据。
3.使用偏好设置对数据进行保存之后,它保存到系统的时间是不确定的,如果需要即刻将数据存储,必须同步
*/
#import "ViewController.h"
@interface ViewController ()
- (IBAction)save:(id)sender;
- (IBAction)read:(id)sender;
@end
@implementation ViewController
- (void)viewDidLoad
{
[super viewDidLoad];
NSString *path=NSHomeDirectory();
NSLog(@"%@",path);
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
}
- (IBAction)save:(id)sender
{
//获取NSUserDefaults对象
NSUserDefaults *defaults=[NSUserDefaults standardUserDefaults];
//保存数据
[defaults setObject:@"gujinyue" forKey:@"name"];
[defaults setInteger:23 forKey:@"age"];
[defaults setBool:YES forKey:@"SEX"];
//同步数据(使用偏好设置对数据进行保存之后,它保存到系统的时间是不确定的,如果需要即刻将数据存储,必须同步)
[defaults synchronize];
}
- (IBAction)read:(id)sender
{
//获取NSUserDefaults对象
NSUserDefaults *defaults=[NSUserDefaults standardUserDefaults];
//读取数据(类型需要与存储时保持一致)
NSString *name=[defaults objectForKey:@"name"];
NSInteger age=[defaults integerForKey:@"age"];
BOOL sex=[defaults boolForKey:@"SEX"];
NSLog(@"姓名:%@ 年龄:%ld 性别:%d",name,age,sex);
}
@end