IOS线程数据篇6之数据持久化plist、preference、NSKeyedArchiver(NSCoding)、Core Data、SQLite3
来源:互联网 发布:python编译器是什么 编辑:程序博客网 时间:2024/04/30 11:41
在IOS中数据持久化通常有5种方法,包括plist、preference、NSKeyedArchiver(NSCoding)、Core Data、SQLite3.
其中Core Data 、SQLite 3 都是对数据库的操作,这里暂且将二者归为一类。尤其是Core Data,用户不需要掌握SQL语言就可以对数据库进行操作,实现基本的增删改查。
Plist存储 这个需要知道文件的名称。当然也可以直接写入图片。
图片png或者jpeg解码成nsdata,然后存储。
- (void)saveArray
{
// 1.获得沙盒根路径
NSString *home =NSHomeDirectory();
// 2.document路径
NSString *docPath = [homestringByAppendingPathComponent:@"Documents"];
// 3.新建数据
NSArray *data =@[@"yyy", @"xxx"];
NSString *filepath = [docPathstringByAppendingPathComponent:@"data.plist"];
[data writeToFile:filepathatomically:YES];
}
- (IBAction)read {
// 1.获得沙盒根路径
NSString *home =NSHomeDirectory();
// 2.document路径
NSString *docPath = [homestringByAppendingPathComponent:@"Documents"];
// 3.文件路径
NSString *filepath = [docPathstringByAppendingPathComponent:@"data.plist"];
// 4.读取数据
NSArray *data = [NSArrayarrayWithContentsOfFile:filepath];
NSLog(@"%@", data);
}
IOS设备下主要有以下几个目录:
Documents:存放一些持久化的数据,ITunes会备份。
Tmp:临时存储目录,应用停止的时候有时候里面的内容会被清空。ITunes不备份。
Library/Preference:偏好设置,ITunes备份,如IOS种的Setting。
Library/Caches:临时大文件。ITunes不备份。
Plist本质上还是一种xml。只能从存储数组 字典 nsnumber等oc的基本对象 (NSdata)。
preference(不需要知道文件的名称)
操作起来最简单
- (IBAction)save {
// 1.利用NSUserDefaults,就能直接访问软件的偏好设置(Library/Preferences)
NSUserDefaults *defaults = [NSUserDefaultsstandardUserDefaults];
// 2.存储数据
[defaults setObject:@"xx"forKey:@"yy"];
// 3.立刻同步
[defaults synchronize];
}
- (IBAction)read {
NSUserDefaults *defaults = [NSUserDefaultsstandardUserDefaults];
NSString *account = [defaultsobjectForKey:@"yy"];
NSLog(@"%@ -- %d", account, autoLogin);
}
NSCoding (主要存储一些对象)使用时候有两个方法要注意:- (void)encodeWithCoder:(NSCoder *)encoder 文件存储时候需要调用,指明哪些属性需要存储。
- (id)initWithCoder:(NSCoder *)decoder 文件解析的时候调用。这两个方法一定要复写。
- (IBAction)save {
// 1.新的模型对象
Person *one1 = [[Personalloc]init];
one1.xx =@"123";
// 2.归档模型对象
// 2.1.获得Documents的全路径
NSString *doc = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES)lastObject];
// 2.2.获得文件的全路径
NSString *path = [docstringByAppendingPathComponent:@"one1.data"];
// 2.3.将对象归档
[NSKeyedArchiverarchiveRootObject:stutoFile:path];
}
- (IBAction)read {
// 1.获得Documents的全路径
NSString *doc = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES)lastObject];
// 2.获得文件的全路径
NSString *path = [docstringByAppendingPathComponent:@"one1.data"];
// 3.从文件中读取MJStudent对象
Person *p1 = [NSKeyedUnarchiverunarchiveObjectWithFile:path];
NSLog(@"%@", P1.xx);
}
NSCoding 用于类之间的继承关系
子类继承父类的时候,子类可以使用父类中所有的成员变量来存储。
- IOS线程数据篇6之数据持久化plist、preference、NSKeyedArchiver(NSCoding)、Core Data、SQLite3
- 最全iOS数据存储方法介绍:FMDB,SQLite3 ,Core Data,Plist,Preference偏好设置,NSKeyedArchiver归档
- 最全iOS数据存储方法介绍:FMDB,SQLite3 ,Core Data,Plist,Preference偏好设置,NSKeyedArchiver归档
- 最全iOS数据存储方法介绍:FMDB,SQLite3 ,Core Data,Plist,Preference偏好设置
- IOS数据持久化之Core Data
- IOS数据持久化之NSKeyedArchiver
- IOS数据持久化之归档NSKeyedArchiver
- iOS数据持久化之NSKeyedArchiver(归档)
- iOS数据持久化之归档NSKeyedArchiver
- iOS数据持久化---NSCoding
- 数据持久化之NSKeyedArchiver
- 数据持久化之NSKeyedArchiver
- IOS数据持久化之Core Data(一) - 框架说明
- IOS数据持久化之Core Data(三) - 验证输入
- ios开发学习笔记--数据持久化之Core Data
- iOS 数据持久化 -- Core Data
- iOS 数据持久化 -- Core Data
- iOS 数据持久化 -- Core Data (2)
- Android开发中:如何判断某Application和Activity的存在性
- android 机型适配问题
- 简单理解WCF的安全
- Visual C++ 2010新功能之auto关键字
- #!/usr/bin/env python与#!/usr/bin/python的区别
- IOS线程数据篇6之数据持久化plist、preference、NSKeyedArchiver(NSCoding)、Core Data、SQLite3
- 每个程序员都该知道的10大编码原则
- jpg在线转换成pdf
- 计算两个文件的相对路径
- 程序员面试注意几点就够了
- constraintsWithVisualFormat
- CentOS5.4下配置PXE+Kickstart无人值守安装
- 2014福布斯中国富豪榜:除了BAT,IT领域企业家“大举侵入”
- (七)立体标定与立体校正 【计算机视觉学习笔记--双目视觉几何框架系列】