iOS开发中存储数据的方法

  最近被问到一些关于iOS开发中对于数据存储的处理方式,感觉数据存储这个也是经常用到的一个功能的,有必要自己去整理和记录一下的。

  iOS开发中一般是有四种存储数据的方式,分别是: 

  1.NSUserDefaults:用来保存用户自己设置的一些属性,用户再次打开程序,或者开机后,这些信息还是存在,NSUserDefaults可以存储的类型包括NSString,NSData,NSNumber,NSDictionary,NSArray。如果要存储其他的数据类型,则需要转化为前面的一些类型,NSUSerDefaults才可以去存储。

  2.NSKeyedArchiver:采用归档的形式来保存数据,数据对象需要遵守NSCoding协议,并且数据对象对应的类需要实现encodeWithCoder:和initWithCoder:方法,encodeWithCoder:用来告诉系统如何对数据对象进行编码,initWithCoder:用来对数据对象进行解码。例如新闻分类的添加,等再一次进入app的时候添加的分类还是能保存下来的。

  3.Sqlite数据库:Sqlite数据库广泛用在移动操作系统开发中,在用这个数据库的时候,需要先添加数据库相关的库和头文件,libsqlite3.dylib,具体数据库的操作可以通过第三库进行操作,例如FMDB这个开源的第三方库。

  4.写入到磁盘:通过NSSearchPathForDirectoriesInDomains这个方法获得文件即将保存的路径。

   其实iOS开发中数据存储的方式主要是可以分为两种,一种是存储到文件里面,另一种是存储到数据库里面的。存储到文件里面的方式例如NSUserDefaults,plist,NSKeyedArchiver归档等方式,只是plist,NSKeyedArchiver方式是可以选择的保存到沙盒中,而NSUserDefaults是默认保存到沙盒的Library/Preferences目录中的。存储到数据库这个方式,可以通过SQL直接访问数据库,也可以通过ORM(Object Relational Mapping)进行对象关系映射访问数据库。下面主要介绍一下存储到数据库的这种方式。

  SQLite是目前主流的嵌入式关系型数据库,其主要特点是轻量级,跨平台,该数据库广泛用到许多嵌入式操作系统中,SQLite数据库是基于C语言开发的轻量级数据库,在iOS中需要使用C语言进行数据库的操作,无法使用Objective-C,因为导入的libsqlite3是用C语言编写的,使用SQLite数据库比较简单,如果是在Mac OSX中使用,可以去SQLite官方网站下载命令行工具,也可以用类似SQLiteManager等工具进行数据库的使用,在iOS开发中使用SQLite数据库主要有如下的一些步骤:

  1)首先导入libsqlite3框架;

  2)

时间: 2024-10-13 21:22:18

iOS开发中存储数据的方法的相关文章

iOS开发中自定义字体的方法

http://www.cnblogs.com/iyou/archive/2014/05/25/3751669.html 1. 首先下载你想要设置的字体库,例如设置方正启体简体 2. 添加到工程,一定要注意勾选红色框框处,默认是不勾选的  添加以后 3.在plist文件中添加 4.现在已经添加成功了,但是要使用就必须知道FontName,用以下代码可查到 NSArray *familyNames = [[NSArray alloc] initWithArray:[UIFont familyName

(iOS)开发中收集的小方法

1.颜色转变成图片 - (UIImage *)createImageWithColor:(UIColor *)color {     CGRect rect = CGRectMake(0.0f, 0.0f, 1.0f, 1.0f);     UIGraphicsBeginImageContext(rect.size);     CGContextRef context = UIGraphicsGetCurrentContext();     CGContextSetFillColorWithCo

iOS开发中常用的参数传递方法

在iOS开发中常用的参数传递有以下几种方法: 采用代理模式 采用iOS消息机制 通过NSDefault存储(或者文件.数据库存储等) 通过AppDelegate定义全局变量(或者使用UIApplication.定义一个单例类等) 通过控制器属性传递 使用代理方式传递参数的步骤如下: 1.定义协议,协议中定义好传参时所需要的方法 2.目标视图控制器定义一个代理对象 3.源视图控制器实现协议并在初始化目标控制器时指定目标控制器的代理为其自身 4.需要传参的时候在目标窗口调用代理的协议方法

IOS开发中关于数据的本地化存储

对于IOS开发者而言, 项目中数据的本地化存储,最难的一点,莫过于SQL语句的编写,除此之外, 其实也没什么难度, 当然在创建数据库之前,我们必须要做的是对数据进行分析, 然后对FMDB进行简单的封装: 代码如下: #import "SQLiteManger.h" #import "FMDB.h" @interface SQLiteManger () @end @implementation SQLiteManger /// 创建一个单例单例 +(instancet

IOS 开发中遍历数组的方法及比较

数组,做为一种常用的数据类型,频繁出现在编码中,其中肯定少不了对数组的遍历,本博文对数组遍历,进行一下自己的归纳,如果是大牛,一笑而过就好,互相学习,欢迎指正. 话不多说直接进入主题 首先创建一个数组 /** 获取系统的语言数组 */ NSArray *languageArray = [[NSUserDefaults standardUserDefaults] arrayForKey:@"AppleLanguages"]; for 循环-C语言 因为在xCode 编译中支持C 语言,

iOS开发中一些常用的方法

1.压缩图片 #pragma mark 处理图片 - (void)useImage:(UIImage *)image { NSLog(@"with-----%f heught-----%f",image.size.width,image.size.height); float scales = image.size.height / image.size.width; //图片比例 NSLog(@"图片比例:%f",scales); UIImage * normal

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

IOS开发中数据持久化的几种方法--NSUserDefaults IOS 开发中,经常会遇到需要把一些数据保存在本地的情况,那么这个时候我们有以下几种可以选择的方案: 一.使用NSUserDefault是最简单直接的一个办法: 1)保存数据: 1 // 实例化一个NSUserDefaults单例对象 2 NSUserDefaults *user = [NSUserDefaults standardUserDefaults]; 3 // 把一个数组array保存在key为allContact的键值

学习IOS开发UI篇--数据存储

iOS应用数据存储的常用方式 1.lXML属性列表(plist)归档 2.lPreference(偏好设置) 3.lNSKeyedArchiver归档(NSCoding) 4.lSQLite3 5.lCore Data Documents:保存应用运行时生成的需要持久化的数据,iTunes同步设备时会备份该目录.例如,游戏应用可将游戏存档保存在该目录 tmp:保存应用运行时所需的临时数据,使用完毕后再将相应的文件从该目录删除.应用没有运行时,系统也可能会清除该目录下的文件.iTunes同步设备时

ios开发中的4种数据持久化方式【二、数据库 SQLite3、Core Data 的运用】

               在上文,我们介绍了ios开发中的其中2种数据持久化方式:属性列表.归档解档.本节将继续介绍另外2种iOS持久化数据的方法:数据库 SQLite3.Core Data 的运用: 在本节,将通过对4个文本框内容的创建.修改,退出后台,再重新回到后台,来认识这两种持久化数据的方式.效果图如下[图1]: [图1 GUI界面效果图] [本次开发环境: Xcode:7.2     iOS Simulator:iphone6S plus   By:啊左]     一.数据库SQL