最近做的音乐播放器,用了太多的数据存储。在各种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,调用一下同步的方法.

附上一个简单的代码。

1、获取一个NSUserDefaults引用:

NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];

2、保存数据

[userDefaults setInteger:1 forKey:@"segment"];

[userDefaults synchronize];  //立即同步的方法,每次更改后需要调用一下

3、读取数据

int i = [userDefaults integerForKey:@"segment"];

4. core data , 这是苹果官方推荐的一个数据存储方案。 至于这个,使用还是不错的,可以存储为SQLite文件,也可以存储为xml文件。但是使用这个会遇到问题的,就是更新的问题,这个是很麻烦的,所以我一般不会使用的。至于使用,推荐一下一个博客    http://www.cocoachina.com/iphonedev/sdk/2010/1126/2397.html

< IOS > 论苹果数据持久化。的更多相关文章

  1. IOS开发中数据持久化的几种方法--NSUserDefaults

    IOS开发中数据持久化的几种方法--NSUserDefaults IOS 开发中,经常会遇到需要把一些数据保存在本地的情况,那么这个时候我们有以下几种可以选择的方案: 一.使用NSUserDefaul ...

  2. iOS中的数据持久化方式

    iOS中的数据持久化方式,基本上有以下四种:属性列表.对象归档.SQLite3和Core Data. 1.属性列表 涉及到的主要类:NSUserDefaults,一般 [NSUserDefaults ...

  3. IOS学习:ios中的数据持久化初级(文件、xml、json、sqlite、CoreData)

    IOS学习:ios中的数据持久化初级(文件.xml.json.sqlite.CoreData) 分类: ios开发学习2013-05-30 10:03 2316人阅读 评论(2) 收藏 举报 iOSX ...

  4. iOS学习之数据持久化详解

    前言 持久存储是一种非易失性存储,在重启设备时也不会丢失数据.Cocoa框架提供了几种数据持久化机制: 1)属性列表: 2)对象归档: 3)iOS的嵌入式关系数据库SQLite3: 4)Core Da ...

  5. iOS开发中数据持久化

    使用几个小例子分别实现 归档NSKeyedArchiver.NSUserDefaults.plist文件数据存储,简单直观.代码地址

  6. iOS中常用的四种数据持久化技术

    iOS中的数据持久化方式,基本上有以下四种:属性列表 对象归档 SQLite3和Core Data 1.属性列表涉及到的主要类:NSUserDefaults,一般 [NSUserDefaults st ...

  7. iOS中常用的四种数据持久化方法简介

    iOS中常用的四种数据持久化方法简介 iOS中的数据持久化方式,基本上有以下四种:属性列表.对象归档.SQLite3和Core Data 1.属性列表涉及到的主要类:NSUserDefaults,一般 ...

  8. iOS面试题--Model层--数据持久化储存方案

    数据持久化储存方案有哪些? iOS中的数据持久化方式,基本上有以下四种:属性列表.对象归档.SQLite3和Core Data 1.属性列表涉及到的主要类:NSUserDefaults,一般 [NSU ...

  9. IOS开发-本地持久化存储sqlite应用

    前言 需求描述 开发测试环境 FMDB介绍 创建工程 一.前言 上一章介绍了如何开发一个IOS应用的入门案例教程:                     我的第一个IOS开发应用    本章主要将介 ...

随机推荐

  1. hdu 1853 最小费用流好题 环的问题

    Cyclic Tour Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/65535 K (Java/Others) Tota ...

  2. Calculate Number Of Islands And Lakes 解答

    Question 1 1 1 1 1 01 0 1 0 0 11 0 1 0 0 11 1 0 1 1 1 1 is earth, 0 is water. i) count the number of ...

  3. shell数组(产生不同的随机数)

    #!/bin/bash # declare -a ARRAY read -p "Please input num[1-39]:" EMENUM #对比新生成的随机数是否重复 fun ...

  4. AJAX实现google搜索建议实战

    搜索建议实战的目标是为了输入搜索内容,动态的进行匹配,效果图如下: 整体思路: 在客户端搜索框中触发onkeyup事件, 随时向PHP服务器请求当前输入框中的内容, PHP服务器获取到keywords ...

  5. [Immutable.js] Exploring Sequences and Range() in Immutable.js

    Understanding Immutable.js's Map() and List() structures will likely take you as far as you want to ...

  6. Coding.net代码托管空间申请与使用-安装并运行WordPress博客

    参考: http://www.freehao123.com/coding-net/ Coding.net这是一个国内新兴的代码托管平台,功能主要包括:代码托管.在线运行环境.监控代码质量,兼有一定的社 ...

  7. iOS多线程及其感悟

    感觉每天都是匆匆忙忙的,每天似乎都是时间不够用一样,可是等真的想要动手敲代码的时候才发现,原来还有好多好多的知识点不是太熟练,所以,人不可以一直感觉自我良好, 有时间就是那种自我感觉良好的心态毁了自己 ...

  8. 关于mybatis插入数据库返回主键id

    关于Sequence主键的数据库来说,如: <insert id="add" parameterType="vo.Category"> <se ...

  9. Web 前沿——HTML5 Form Data 对象的使用(转)

    XMLHttpRequest Level 2 添加了一个新的接口——FormData.利用 FormData 对象,我们可以通过 JavaScript 用一些键值对来模拟一系列表单控件,我们还可以使用 ...

  10. React-Native OpenGL体验二

                                  搞了一下午,终于做了几个Demo出来,下面我就说一下我对React-Native下的OpenGL的流畅度的体验吧. 我使用的测试机是坚果手机 ...