数据存储小结,属性列表,archiver 偏好设置,Sqlite3,Core Data

数据存储小结,属性列表,archiver 偏好设置,Sqlite3,Core Data,第1张

概述NSString 属性列表   把数据存储到沙盒中再从沙盒中取出,明确沙盒目录有两种方式 一种     // 获取应用沙盒的根路径     NSString *home = NSHomeDirectory();     NSString *documents = [home stringByAppendingPathComponent:@"Documents"]; 二种   NSString *d

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所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1173619.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-02
下一篇 2022-06-02

发表评论

登录后才能评论

评论列表(0条)

保存