< IOS > 论苹果数据持久化。
最近做的音乐播放器,用了太多的数据存储。在各种APP中无可避免的要用到数据存储。在IOS中,给了很多办法进行数据持久化。但是万宗不离其变,都是要存储到本地中,IOS提供了沙盒机制,沙盒有多大呢???这个我也不知道,看你自己手机内存多大了。
数据存储大体的有这几种。
1, 数据库。
在MAC 和 IPHONE中都是集成了SQLite, 用的时候也方便,并且这个也是开源的,移植性也很高。
系统也集成了SQLite3 这个类进行操作数据库。当然,使用还有有一定复杂的,这里推荐使用FMDB,这个第三方类库,进行数据库操作,哈哈,你得会SQL语句, 这里推荐一下大神们的博客,SQL语句,足够基本使用的。http://www.cnblogs.com/yubinfeng/archive/2010/11/02/1867386.html。
数据库,我感觉特别在某一个项目要提前嵌入大量的数据,用这个会比较不错,管理也比较方便。管理工具推荐一下:火狐浏览器自带的SQL Manager

对于用数据库的时候,特别要注意几点, ~1,数据库在增加到项目中后,如果想对其进行操作,必须把他复制到沙盒中才能进行读写。
~2,对数据库每次增加了一个column, table, 增加数据,都要先进入沙盒中把数据库文件删除,可不要把项目中得数 据库给删除了,哈哈。
2. 直接存储文件。 在OC中,如果你存储一个文件不对其进行标示后缀名的话,系统默认存储plist文件, plist文件是一个字典类型的,朋友们可以看一下,这个文件具体打开什么情况。 这个可以直接存,例如数组, 字典都是可以的。 另外也可以指定文件后缀名自,例如.mp3, .txt 等等。
这个使用的场景,不好说,看自己的业务逻辑需求了。 主要就是看沙盒下的文件。
Documents:苹果建议将程序中建立的或在程序中浏览到的文件数据保存在该目录下,iTunes备份和恢复的时候会包括此目录
Library:存储程序的默认设置或其它状态信息;
Library/Caches:存放缓存文件,iTunes不会备份此目录,此目录下文件不会在应用退出删除
tmp:提供一个即时创建临时文件的地方。
3. nsuserdefault ,这是一个特殊的plist文件, 程序中就自带了, 很简单,用这个类下的一个单例方法就好了。就能获取这个文件,不需要自己创建。这个办法使用适用与存储一些简答的东西,例如程序的设置,收藏的东西等。
至于用法,可以参照API,很简单地使用。 然后做这个的时候会遇到一个问题,数据无法存储,我最早用的时候就遇到过这个问题,当时纠结了很久,各种找资料,原来需要同步一下,OK,调用一下同步的方法.
附上一个简单的代码。
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
[userDefaults setInteger:1 forKey:@"segment"];
[userDefaults synchronize]; //立即同步的方法,每次更改后需要调用一下
int i = [userDefaults integerForKey:@"segment"];
4. core data , 这是苹果官方推荐的一个数据存储方案。 至于这个,使用还是不错的,可以存储为SQLite文件,也可以存储为xml文件。但是使用这个会遇到问题的,就是更新的问题,这个是很麻烦的,所以我一般不会使用的。至于使用,推荐一下一个博客 http://www.cocoachina.com/iphonedev/sdk/2010/1126/2397.html
< IOS > 论苹果数据持久化。的更多相关文章
- IOS开发中数据持久化的几种方法--NSUserDefaults
IOS开发中数据持久化的几种方法--NSUserDefaults IOS 开发中,经常会遇到需要把一些数据保存在本地的情况,那么这个时候我们有以下几种可以选择的方案: 一.使用NSUserDefaul ...
- iOS中的数据持久化方式
iOS中的数据持久化方式,基本上有以下四种:属性列表.对象归档.SQLite3和Core Data. 1.属性列表 涉及到的主要类:NSUserDefaults,一般 [NSUserDefaults ...
- IOS学习:ios中的数据持久化初级(文件、xml、json、sqlite、CoreData)
IOS学习:ios中的数据持久化初级(文件.xml.json.sqlite.CoreData) 分类: ios开发学习2013-05-30 10:03 2316人阅读 评论(2) 收藏 举报 iOSX ...
- iOS学习之数据持久化详解
前言 持久存储是一种非易失性存储,在重启设备时也不会丢失数据.Cocoa框架提供了几种数据持久化机制: 1)属性列表: 2)对象归档: 3)iOS的嵌入式关系数据库SQLite3: 4)Core Da ...
- iOS开发中数据持久化
使用几个小例子分别实现 归档NSKeyedArchiver.NSUserDefaults.plist文件数据存储,简单直观.代码地址
- iOS中常用的四种数据持久化技术
iOS中的数据持久化方式,基本上有以下四种:属性列表 对象归档 SQLite3和Core Data 1.属性列表涉及到的主要类:NSUserDefaults,一般 [NSUserDefaults st ...
- iOS中常用的四种数据持久化方法简介
iOS中常用的四种数据持久化方法简介 iOS中的数据持久化方式,基本上有以下四种:属性列表.对象归档.SQLite3和Core Data 1.属性列表涉及到的主要类:NSUserDefaults,一般 ...
- iOS面试题--Model层--数据持久化储存方案
数据持久化储存方案有哪些? iOS中的数据持久化方式,基本上有以下四种:属性列表.对象归档.SQLite3和Core Data 1.属性列表涉及到的主要类:NSUserDefaults,一般 [NSU ...
- IOS开发-本地持久化存储sqlite应用
前言 需求描述 开发测试环境 FMDB介绍 创建工程 一.前言 上一章介绍了如何开发一个IOS应用的入门案例教程: 我的第一个IOS开发应用 本章主要将介 ...
随机推荐
- QT5.1.0,QT4.8.0以及VC2010、VC2012的测试对比
QT5.1.0,QT4.8.0以及VC2010.VC2012的交叉测试对比. 测试1: 用VC2012静态编译了QT5.1.0. 编译速度很慢,生成完成后,用VC2012+QT5.1.0进行程序生成, ...
- cf448A Rewards
A. Rewards time limit per test 1 second memory limit per test 256 megabytes input standard input out ...
- libeXosip2(1-1) -- How-To initialize libeXosip2.
How-To initialize libeXosip2. The eXtented eXosip stack Initialize eXosip and prepare transport laye ...
- UVa1587.Digit Counting
题目连接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=247&p ...
- AngularJs登录
AngularJs 登录的简单实现 多数AngularJs应用离不开登录操作,最近阅读了一篇关于AngularJs登录的博客,博客中实现的登录系统demo能够应用于多数小型AngularJs应用,实现 ...
- [POJ 3734] Blocks (矩阵高速幂、组合数学)
Blocks Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 3997 Accepted: 1775 Descriptio ...
- Flashback Recovery Area的设置与取消
在Oracle 10g中, Flash back家族分为以下成员: Flashback Database, Flashback Drop,Flashback Query(分Flashback Quer ...
- IoC容器Autofac正篇之解析获取(五)
解析获取的方式有如下几种: Resolve class Program { static void Main(string[] args) { var builder = new ContainerB ...
- javascript 之 this 用法
参考视频:http://www.imooc.com/video/6430 JavaScript中的this比较灵活,也是让很多初学者摸不到头脑,那么根据在不同的环境下,在同一个函数,不同的调用方式下, ...
- 高逼格的实现WiFi共享,不安装第三方wifi共享软件,两种方式实现开启wifi的功能
作为一枚程序员,不会点高逼格的doc命令,那么都有点感觉对不起自己的行业了,好了废话就到这里了 第一种方式: 首先使用cmd命令:window键+R 然后输入cmd回车 第一种方式: 第一步: 设 ...