数据持久化是应用程序开发过程中的一个基本问题,对应用程序中的数据进行持久化存储,有多重不同的形式.本系列文章将介绍在iphone开发过程中数据持久化的三种主要形式,分别是属性列表序列号.对象归档化以及iphone的嵌入式关系数据库SQLite.本文主要介绍属性序列号的数据持久化方法. 在许多应用程序中都使用了属性列表,比如使用属性列表来指定应用程序的首选项,可以使用Xcode或Property List Editor来手动编辑它们,并且只要字典或数组仅包含特定的可序列化对象,就可以使用NSDic…
前两篇分别讨论了使用属性列表的数据持久化.使用对象归档的数据持久化,本文将讨论第三个实现数据持久化的方法---嵌入式SQL数据库SQLite3.SQLite3在存储和检索大量数据方面非常有效.它还能够对数据进行复杂的聚合,与使用对象执行这些操作相比,获得结果的速度更快.SQLite3使用SQL,SQL是用于关系数据库的标准语言,并且有自己的语法语言,具体的可以参考SQL相关教程.本文将介绍如何应用iphone应用程序中进行设置并与SQLite数据库交互,实现数据的存储与检索等. 如果先前没有接触…
在Cocoa世界中,术语“归档”是指另一种形式的序列化,它可以实现对任何对象的序列化.使用对模型对象进行归档的技术可以轻松将复杂的对象写入文件,然后再从中读取它们.只要在类中实现的每个属性都是标量(如int或float)或都是符合NSCoding协议的某个类的实例,就可以对该对象进行归档.由于大多数支持数据存储的Foundation和Cocoa Touch类都符合NSCoding,因此对于大多数类来说,归档相对而言比较容易实现.为了增加灵活性,在使用应用中,NSCoding协议最好与NSCopy…
IOS开发中数据持久化的几种方法--NSUserDefaults IOS 开发中,经常会遇到需要把一些数据保存在本地的情况,那么这个时候我们有以下几种可以选择的方案: 一.使用NSUserDefault是最简单直接的一个办法: 1)保存数据: // 实例化一个NSUserDefaults单例对象 NSUserDefaults *user = [NSUserDefaults standardUserDefaults]; // 把一个数组array保存在key为allContact的键值对里 [us…
在日常开发中经常要对NSString.NSDictionary.NSArray.NSData.NSNumber这些基本类的数据进行持久化,我们可以用XML属性列表持久化到.plist 文件中,也可以用NSUserDefaults,下面我们就开搞吧. XML属性列表方式: #import "AppDelegate.h" #import "Person.h" @interface AppDelegate () @end @implementation AppDelega…
使用几个小例子分别实现 归档NSKeyedArchiver.NSUserDefaults.plist文件数据存储,简单直观.代码地址…
iOS数据存储之属性列表理解 数据存储简介 数据存储,即数据持久化,是指以何种方式保存应用程序的数据. 我的理解是,开发了一款应用之后,应用在内存中运行时会产生很多数据,这些数据在程序运行时和程序一起驻留在内存中,一旦程序运行结束从内存中退出后,这些数据也就相应消失了.等到再次运行程序的时候,之前的那些数据又要重新计算.但是对于一些应用,我们需要将程序产生的数据持久的保存起来,使得应用重启之后这些数据不会丢失,这时候就需要用到数据的持久化技术. 在iOS设备上实现数据持久化存储的方式有很多中机制…
常用的数据存储有属性列表.偏好设置.归档.sqlite.coreData.上一博客了解了沙盒,现在了解下属性列表Plist. 通常通过NSArray.NSDictionary集合类的WriteToFile:atomically方法将他们存储到属性列表中.在属性列表能保存的数据类型如下 所以可以序列化的类有以下这些: NSArray.NSMutableArray.NSDictionary.NSMutableDictionary.NSData.NSMutableData.NSDate.NSStrin…
iPhone开发中从一个视图跳到另一个视图有三种方法:   1.self.view addSubView:view .self.window addSubView,需要注意的是,这个方法只是把页面加在当前页面.此时在用self.navigationControler.pushViewController和 pushViewController 是不行的.要想使用pushViewController和popViewController进行视图间的切换,就必须要求当前视图是个NavigationCo…
iphone 开发中使用zbar时遇到的几个典型问题解决方法.   在近期的一个ios项目中使用到了一个二维码扫描库(Qrcode)--ZBar, 期间遇到2个问题.   1. zbar下载后使用其libzbar.a 发现无法再arm7上运行. 2. zbar使用过程中,如果多次打开摄像头扫描Qrcode,会出现memory leak problem, 导致其内存指数型增长,大概8次调用后即耗费了85M 左右的内存, 最后导致app崩溃. 3. libzbar.a 在重新编译后, 无法再在sim…