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;
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;
相关文章推荐
- 集成支付宝钱包支付iOS SDK的方法与经验
- iOS 设置视图的圆角效果
- iOS性能优化:Instruments使用实战
- iOS 点击按钮跳转到指定的TabBar
- iOS:OC的定时器任务方法,延时方法
- iOS开发编码建议与编程经验
- IOS中延时执行的几种方式的比较
- NSTimer使用注意事项
- iOS-CGContextAddArc各参数说明
- IOS开发之很简单的下拉刷新,包你满意
- IOS自适应前段库-Masonry的使用(转载)
- iOS 开发-删除storyboard的正确方法
- iOS开发之获取各种文件的目录路径的方法
- iOS 本地推送、远程推送及带快速回复的本地推送
- iOS从入门到颈椎病发作
- 实例讲解设计模式中的命令模式在iOS App开发中的运用
- iOS项目的Info.plist的一些设置mark
- virtualBox虚拟机安装64位操作系统BIOS的设置
- clang: error: no such file or directory: "xxxxxx" clang: error: no input files
- iOS的socket开发基础