您的位置:首页 > 移动开发 > IOS开发

iOS海哥开发笔记(开发中如何使用数据持久化)海哥原创,让你对存储知识一目了然

2016-03-24 10:30 423 查看
/************************************************************************/

1.NSUserDefaults

看看这个原文链接
http://my.oschina.net/u/1245365/blog/294449
//
本地存储,缓存数据实现思路,虽然不推荐

比如要存储一个班的学生

1.创建student模型
有姓名学号两个属性

2.遵守NSCoding协议,

- (void)encodeWithCoder:(NSCoder *)encode{

[encode encodeObject:self.name forKey:@"name"];

}

- (id)initWithCoder:](NSCoder *)decode

{

self.name = [decode decodeObjectforKey:@"name"];

}

2.将全班同学存入一个可变数组中//如果要存储全班同学的信息,我们可以建一个NSMutableArray
来存放全班同学的信息(里面存储的全是NSData对象

Student *student = [[Student alloc] ini];

//下面进行的是对student对象的 name
, studentNumber
,sex
的赋值

student.name = @"lady-奕奕";

//这是一个存放全班同学的数组

NSMutableArray * dataArray = [NSMutableArray arrayWithCapacity:50];

//将student类型变为NSData类型

NSData *data = [NSKeyedArchiver archivedDataWithRootObject:student];

//存放数据的数组将data加入进去

[dataArray addObject:data];

3.

//如果你只想存一个人的信息,你可以直接将NSData存入NSUserDefaults中
:

NSData *data = [NSKeyedArchiver archivedDataWithRootObject:student];

NSUserDefaults *user = [NSUserDefaults standardUserDefaults];

[user setObject:data forKey:@"oneStudent"]

4.

如果你想存储全班同学的信息,你还要用一个for循环将data
放入 dataArray中,这里具体的操作就不实现了,只给出存放的代码:

//记住要转换成不可变数组类型

NSArray * array = [NSArray arrayWithArray:dataArray];

NSUserDefaults *user = [NSUserDefaults standardUserDefaults];

[user setObject:array forKey:@"allStudent"];

/************************************************************************/

Sqlite3
存储数据
// 链接中说明了用上面说法的不好之处,以及场景描述,建议大家必须打开链接看看
http://mp.weixin.qq.com/s?__biz=MzAxMzE2Mjc2Ng==&mid=402768956&idx=1&sn=714160270a31a4ce579439780c58206c&scene=23&srcid=03245as3G2lYZ4SRzFQjiKYH#rd
很多同学要是对于SQLite3还是处于蒙B状态的话,这里附上个链接带你看看苹果原生的Sqlite3,
http://blog.csdn.net/horisea/article/details/50715139
既然这样比较难,那么伟大的程序员们肯定有办法,于是FMDB出来了,那就自己查咯。不知道的童鞋一定要看

/************************************************************************/

额外注意

1.Keychain
用于存储一些私密信息,密码,证书之类的:

需求:APP被用户卸载了,那么有一天又重新下载了该应用,帐号和密码还是能登陆,这里的账户和密码保存在哪里,就是在keychain中

如果这些你仔细看完了,数据存储这块保证没问题了,笔者菜鸟,不对之处,欢迎指出 微信18133224350;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: