iOS 数据存储之我见

引言:

iOS的数据存储与缓存涉及到的知识方方面面,有蛮多需要去好好了解了解,那么做为移动设备的应用,离线数据的重要性,相对于PC应用显得重要的多.

文中介绍的方法,不一定都是最好的,但都是目前博主都在使用的技术,如果有更好的方法和技术,不吝赐教!


参考资料: 

1:使用Keychain存储用户敏感信息

http://blog.csdn.net/tianyitianyi1/article/details/7643365

2:NSUserDefaults简介及使用

http://qing.blog.sina.com.cn/2739139371/a343f32b33001kpq.html


介绍:

1: KeyChain 

KeyChain是用于在iOS中存储敏感信息时的一个推荐型方案.
如果直接使用其API,还是非常繁琐的,为此网上已经有牛人,对此其API进行了封装,我们学会使用就行了.  
两部操作即可:
第一步:引入系统框架文件   Security.framework
第二步:导入开源框架  SFHFKeychainUtils 
参考链接中有源代码下载地址,这里就不提供了, 
那么我这里提供一个 我使用过后的一个优化版: Demo
使用非常简单, 4个方法:添加,删除,查询,查询全部 
注: KeyChain的信息存储不会因为App的被删除而丢失数据,这个有点类似 Windows的注册表的概念差不多.

2:Property List (熟称的Plist)

Property List是在App里面存储一些较为简单且零散的键值对的一个推荐型方法
以下代码 分别用于创建或修改 Property List文件内部值:
//通过文件路径获取
NSMutableDictionary *attachmentInfoDictionary  = [[NSMutableDictionary alloc] initWithContentsOfFile:attachmentInfoPathString];
//判断是否成功从指定的路径中取到Plist 文件,如果没有,则实例化一个新的供写入
if (attachmentInfoDictionary == nil) {
    attachmentInfoDictionary = [[NSMutableDictionary alloc] init];
}
[attachmentInfoDictionary setObject:@"值" forKey:@"键"];
NSLog(@"%@",attachmentInfoDictionary);
//返回是否写入成功  但是需要确保指定的路径结构存在,否则肯定失败
[attachmentInfoDictionary writeToFile:attachmentInfoPathString atomically:NO];
[attachmentInfoDictionary release];

3:NSUserDefaults

NSUserDefaults是系统级 Property List文件,里面存储一些App配置参数,当然,我们也可以加一些自己的值进行,用户和 Property List几乎一样
1:查询 NSUserDefaults 里面全部存储的值,这里面可以看到我们开发时存储的:
[[NSUserDefaults standardUserDefaults] dictionaryRepresentation]
2:当对 NSUserDefaults 修改的值以后,需要调用同步函数实现数据持久化
[[NSUserDefaults standardUserDefaults] synchronize];

4:Core Data

Core Data是对SQLite的封装,以面向对象的方式与本地数据库进行数据交互
Core Data的介绍参考这篇 文章.

5:StackMob

StackMob是专为移动App打造的后端云存储解决方案,是博主大力推荐使用的 Baas平台
StackMob的使用参考这篇 文章.

6:SQLite
SQLite 的使用参考FEDM


总结:

信息化离不开数据


优秀的个人博客,低调大师

微信关注我们

原文链接:https://yq.aliyun.com/articles/250563

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

相关文章

发表评论

资源下载

更多资源
优质分享Android(本站安卓app)

优质分享Android(本站安卓app)

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

Mario,低调大师唯一一个Java游戏作品

Mario,低调大师唯一一个Java游戏作品

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的、适应高吞吐量的数据库方案。

Eclipse(集成开发环境)

Eclipse(集成开发环境)

Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。