NSArray *plist = @[@"name",@"age"];
//指定保存的地方
NSString *file = [NSHomeDirectory() stringByAppendingString:@"/Documents/database.plist"];
//将创建的数组保存到指定的路径下
[plist writeToFile:file atomically:YES];
NSDictionary *dic = @{@"name":@"张三",
@"age":@18,
@"userId":@123456};
//创建归档对象
//指定要保存的地方
NSString *toPath = [NSHomeDirectory() stringByAppendingString:@"/Library/data.archiver"];
NSLog(@"toPath:%@",toPath);
BOOL success = [NSKeyedArchiver archiveRootObject:dic toFile:toPath];
if (success) {
NSLog(@"归档成功");
}
//解归档
BOOL succ = [NSKeyedUnarchiver unarchiveObjectWithData:[NSData dataWithContentsOfFile:toPath]];
if (succ) {
NSLog(@"解归档成功");
}
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
//设值
[defaults setBool:YES forKey:@"NII"];
[defaults setObject:@"Lily" forKey:@"haha"];
//同步数据
[defaults synchronize];
SQLite通过SQL语句操作数据,CoreData使用面向对象的方式操作数据
SQlite数据库,sqlite最新版本是3.0,使用前需要导入libsqlite3.0dylib,SQLite3.0使用的是C的函数接口
二:操作数据局库的流程
(1)打开数据库
(2)编译SQL语句
(3)执行SQL语句
(4)销毁SQL语句
(5)关闭数据库
三:常用的SQL语句
/** DDL 数据定义语言 **/
(1)创建表格
CREATETABLE t_student (idINTEGER, nameTEXT, ageINTEGER);
CREATETABLE t_movie (id integer PRIMARY KEY,name text,director text);
CREATETABLE t_movie (idintegerPRIMARYKEYAUTOINCREMENT,nametext,directortext);
CREATETABLEIFNOTEXISTS t_movie (idintegerPRIMARYKEYAUTOINCREMENT,nametext, directortext)
(2)删除表格
DROPTABLE t_student;
/** DML 数据操作语言 **/
(1)插入一条数据,字符串在SQL用单引号
INSERT INTO t_student VALUES (1, '张三', 18);
INSERT INTO t_student (name, age) VALUES ('丁三', 90)
(2)修改、更新数据,如果你没有指定条件(限定条件),全部会修改
UPDATE t_student SET age = 20;
UPDATE t_student SET age = 13 WHERE id = 2;
(3)删除表的记录(内容)
DELETE FROM t_student;
(4)条件的限定 OR AND
UPDATE t_student SET age = 13 WHERE id = 2 OR id = 3;
UPDATE t_student SET age = 99 WHERE id >= 2;
/** DQL 数据查询语言 **/
SELECT * FROM t_student; // 查询所有数据
SELECT id identifier, name s_nameFROM t_student; // 查询2字段数据,取别名
SELECT * FROM t_student WHERE age > 20;
SELECT * FROM t_student ORDER BY age DESC; // 默认ASC,升序
SELECT COUNT(*)FROM t_student; // 查询表中存在多少条记录
SELECT sum(age) FROM t_student; // 查询表age所有记录之和
SELECT max(age) FROM t_student WHERE id = 2 OR id = 3;
SELECT * FROM t_student LIMIT 0, 5; // n * (n - 1), 6