Nsstring
属性列表
把数据存储到沙盒中再从沙盒中取出,明确沙盒目录有两种方式
一种
// 获取应用沙盒的根路径
Nsstring *home = NSHomeDirectory();
Nsstring *documents = [home stringByAppendingPathComponent:@"documents"];
二种
Nsstring *documents = [NSSearchPathForDirectorIEsInDomains(NSdocumentDirectory,NSUserDomainMask,YES) lastObject];
读取或写入沙盒documents中
#pragma mark 将字典写入属性列表文件中
- (voID)writeDict {
NSMutableDictionary *dict = [NSMutableDictionary dictionary];
[dict setobject:@"mj" forKey:@"name"];
[dict setobject:[NSNumber numberWithInt:10] forKey:@"age"];
// 获取应用沙盒的根路径
Nsstring *home = NSHomeDirectory();
NSLog(@"%@",home);
Nsstring *documents = [home stringByAppendingPathComponent:@"documents"];
// 属性列表的默认拓展名是pList
Nsstring *path = [documents stringByAppendingPathComponent:@"dict.pList"];
[dict writetofile:path atomically:YES];
}
#pragma mark 从属性列表文件中读取字典
- (voID)readDict {
// 获取应用沙盒的根路径
Nsstring *home = NSHomeDirectory();
NSDictionary *dict = [NSDictionary dictionaryWithContentsOffile:path];
NSLog(@"%@",dict);
}
用于归档Archiver *** 作多个文件数据存入一个文件中,扩展名可以为任意名称
自定义对象进行归档是编码与解码需要实现NSCoding encodewithCoder initWithCoder
#pragma mark 读取多个Person
- (voID)readPersons {
Nsstring *documents = [NSSearchPathForDirectorIEsInDomains(NSdocumentDirectory,NSUserDomainMask,YES) lastObject];
Nsstring *path = [documents stringByAppendingPathComponent:@"persons.pList" ];
NSArray *array = [NSKeyedUnarchiver unarchiveObjectWithfile:path];
NSLog(@"%@",array);
}
#pragma mark 写入多个Person
- (voID)writePersons {
NSMutableArray *array = [NSMutableArray array];
for (int i =0; i<3 ; i++) {
Nsstring *name = [Nsstring stringWithFormat:@"mj-%i",i];
int age = 10 + i;
Person *p = [Person personWithname:name age:age];
[array addobject:p];
}
Nsstring *documents = [NSSearchPathForDirectorIEsInDomains(NSdocumentDirectory,NSUserDomainMask, YES) lastObject];
stringByAppendingPathComponent:@"persons.pList" ];
[ NSKeyedArchiver archiveRootObject:array tofile:path];}
偏好设置 Preferences
一般用于写入系统中的文档数据,比如用户注册,修改皮肤颜色,修改字体。。
#pragma mark 读取偏好设置
- (voID)read {
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
Nsstring *useranme = [defaults objectForKey:@"username"];
Nsstring *password = [defaults objectForKey:@"password"];
BOol autoLogin = [defaults boolForKey:@"auto_login"];
NSLog(@"%@-%@-%i",useranme,password,autoLogin);
}
#pragma mark 存储偏好设置
- (voID)save {
// NSUserDefaults关联着沙盒中的Preferences文件夹
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setobject:@"mj" forKey:@"username"];
[defaults setobject:@"123" forKey:@"password"];
[defaults setBool:YES forKey:@"auto_login"];
// 将数据同步到Preferences文件夹中
[defaults synchronize];
}
sqlite3
是开源的小型数据库,嵌入式关系型数据库,可移植性好,已使用内存开销小,无类型,数据类型,Text Integer,float,boolean,blob
1打开数据库
// 数据库文件路径
Nsstring *filename = [@"sqlite.db" documentsAppend];
// 如果数据库不存在,就会创建一个
int result = sqlite3_open([filename UTF8String],&_db);
if (result == sqlITE_OK) {
2,创建表,
返回结果 数据库 语句 错误
int result = sqlite3_exec(_db,sql,NulL,&error);
3插入数据
// sqlite3_prepare_v2做一些插入数据的准备
// 主要是检查sql语句的语法问题
int result = sqlite3_prepare_v2(_db,-1,&stmt,NulL);
4查询数据
// sqlite3_prepare_v2做一些插入数据的准备
NulL);
5关闭数据库
// 关闭数据库
sqlite3_close(_db);
Core Data
是苹果公司自带的存储
资源这比较详细可观看 http://www.cnblogs.com/mjios/archive/2013/02/26/2932999.HTML
总结以上是内存溢出为你收集整理的数据存储小结,属性列表,archiver 偏好设置,Sqlite3,Core Data全部内容,希望文章能够帮你解决数据存储小结,属性列表,archiver 偏好设置,Sqlite3,Core Data所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)