首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

iOS本地数据存储

前言 工作需要,特意准备一篇入门文章,为新人开发者介绍常见的数据存储。 正文 数据存储 数据存储本质就是运行时的对象保存在文件、数据库中。...数据存储可以分为两步:首先是将对象转换成二进制数据,这一步也叫序列化;相反,将二进制数据转换成对象则称为反序列化;然后是考虑二进制数据如何保存和读取。...系统提供的持久化存储数据的类,该方法是多线程安全的单例,在沙盒中的存储是用plist进行保存。...keychain是iOS提供给App存储敏感和安全相关数据用的工具。keychain同样会被iTunes备份,即使App重装仍能读取到上次保存的结果。...总结 iOS的本地数据存储,其实就是内存数据的序列化和反序列化。

2.9K20
您找到你想要的搜索结果了吗?
是的
没有找到

iOS常用的数据存储方式

2.2 案例:存储UUID来解决设备唯一标识符获取方案 2.3 iOS安全之敏感逻辑的保护方案 4.1 例子:存储自定义类型 4.2 NS_DESIGNATED_INITIALIZER 宏的使用 4.3...的sql日志输出 开关 7.9、coredata 的延迟加载 7.10、NSManagedObject子类 前言 iOS应用数据存储的常用方式 1、preference偏好设置 2、XML属性列表归档...每个iOS应用都有自己的应用沙盒,来与其他文件系统隔离。...一般存储体积大、不需要备份的非重要数据 5 Library/Preference: 保存应用的所有偏好设置,iOS的Settings(设置)应用会在该目录中查找应用的设置信息。...Keychain是OS X和iOS都提供的一种安全存储敏感信息工具。 比如,我们可以在Keychain中存储用户名、密码等信息。

1.9K20

iOS开发--常用的数据存储方式

iOS应用数据存储的方式 1、XML属性列表(plist)归档 2、preference(偏好设置) 3、NSKeyedArchiver归档(NSCoding) 4、SQLite3 5、Core...Data 1、plist文件存储-(沙盒存储) 注意:不可以存储自定义对象,一个对象能不能使用plist存储,可以通过看他有没有write to file方法 存入: // 获取沙盒路径...) ** 1.不需要关心文件名** ** 2.快速做键值对存储** ** 3.基本数据类型都可以存储** 存储 NSUserDefaults *defaults = [NSUserDefaults...defaults setObject:@"sun" forKey:@"name"]; [defaults setObject:@"49" forKey:@"age"]; // iOS7...之前不会马上同步,所以适配iOS7之前的时候要加 [defaults synchronize]; 读取: NSUserDefaults *defaults = [NSUserDefaults

83420

iOS学习——iOS常用的存储方式

不管是在iOS还是Android开发过程中,我们都经常性地需要存储一些状态和数据,比如用户对于App的相关设置、需要在本地缓存的数据等等。...根据要存储的的数据的大小、存储性质以及存储类型,在iOS和Android中哪个都有多种存储方式。...在研究存储方式之前,我们有必要先研究下这些文件会存储到什么地方去,这就需要我们了解iOS App特有的沙盒机制了。...注意 必须遵循并实现NSCoding协议 保存文件的扩展名可以任意指定 继承时必须先调用父类的归档解档方法 扩展:iOS开发基础-数据存储方式(归档) 2.4 手动存放沙盒 手动将数据存放到沙盒...关于Core Date的具体使用方法参见:IOS 数据存储之 Core Data详解 2.6 SQLite 3   iOS系统自带Core Data来进行持久化处理,而且Core Data可以使用图形化界面来创建对象

2.7K100

点进来你就懂的iOS数据存储

上面是百度百科对沙盒简介,iOS这边每个APP都对应有一个自己的沙盒,用于App自己的数据存储。安全角度上每个App只能访问自己沙盒里的数据而不能跨域访问别的App的数据。...下面是iOS中几种针对轻量级数据存储方式: NSUserDefault 写入文件 归档 Keychain 1、NSUserDefault 苹果提供的一个单例类,只能用于存储一些轻量级的数据或者APP...通过让存储数据模型遵守NSCoding或NSSecureCoding(iOS 6以后)协议并且实现其两个协议方法使用NSKeyedArchiver对自定义的数据对象进行序列化。...更好一点的存储可以利用数据库来操作增删改查,iOS有一个非常好用的数据库框架FMDB (基于iOS平台的SQLite数据库框架),可以多了解下。...关于作者:热河,普元移动端开发工程师,互联网技术爱好者,专注于iOS开发。目前参与Mobile 8.0项目的开发,主要接触RN技术的应用,黏合前端代码与iOS底层之间的交互。

1.9K10

iOS存储方式之归档

介绍 iOS有几种存储数据在本地的方式,比如属性表plist、coredata的数据存储等等,这里讲解归档这种存储方式。...归档是一种翻译的名字,原名叫 Archiver ,可以理解成将数据以序列化的方式存储在本地,像是将文件放在文件夹中一样,进行资料的归档存放。...其实我所理解的这个过程很像压缩与解压,在存储多对象时我们待会也会看到确实有一个 encode 和 decode 的过程,方法名就是这个,所以为了便于理解也可以想象成将数据压缩成一个压缩包后存储在本地,要恢复数据时再解压就可以了...,当然要有存储的位置,所以首先获取设备的目录并且建立一个要存储归档数据的目录,注意后缀名要是 .archiver 。...解档使用的是 unarchiveObjectWithFile: 方法,从数据存储路径获取归档文件进行解档,就得到了我们存储的原始数据了。

1.5K20

iOS存储自定义类型到NSUserDefaults数据

1.1 沙盒的根目录下有三个常用的文件夹: 1.2 Library文件夹 1.3 tmp文件夹 1.4 standardUserDefaults 的使用 2.1 把字典对象 持久化保存到文件中 2.2 存储自定义类型对象到...当每页缓存容量在8192B到16384B之间时,数据库拥有最好的读写性能。 如果单条数据小于100KB时,则从SQLite数据库中读取数据速度更快;单条数据大于100KB时,则从文件中读取速度更快。...I 沙盒 我们都知道,iOS系统为了保证系统的安全性,采用了沙盒机制(即每个应用程序都会有自己的一个独立存储空间)。 其原理是通过重定向技术,把应用程序生成和修改的文件重定向到自身文件夹中。...因此,在iOS应用程序里,磁盘缓存的数据一般都存储在沙盒中。...而Preferences文件夹保存的是应用程序的偏好设置,即iOS系统的设置应用会从该目录中读取偏好设置信息。因此,该目录一般不用于存储应用程序产生的数据

94410

存储数据

数据缓存 通过《网络数据采集和解析》一文,我们已经知道了如何从指定的页面中抓取数据,以及如何保存抓取的结果,但是我们没有考虑过这么一种情况,就是我们可能需要从已经抓取过的页面中提取出更多的数据,重新去下载这些页面对于规模不大的网站倒是问题也不大...使用NoSQL Redis简介 Redis是REmote DIctionary Server的缩写,它是一个用ANSI C编写的高性能的key-value存储系统,与其他的key-value存储系统相比...Redis支持数据的持久化(RDB和AOF两种方式),可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。...Redis不仅仅支持简单的key-value类型的数据,同时还提供hash、list、set,zset、hyperloglog、geo等数据类型。...配置底层有多少个数据库。 配置Redis的持久化机制 - RDB。 配置Redis的持久化机制 - AOF。 配置访问Redis服务器的验证口令。

4.6K30

android 数据存储---- SharedPreferences实现数据存储

SharedPreferences作为android的存储方式有以下特点: 1.只能存放key-value模式的键值。 2.本质就是就是以xml文件在应用程序所在包中存放数据。...用户不需要去  xml文件的生成和解析 4.由于 SharedPreferences 只能存放key-value  简单的数据结构,通过用来做软件配置参数,用来配置用户对软件的自定义或设置参数。...如果要存在复杂的数据,可以使用文件,如果还需要方便的增删改查 的话,就只能用Sqlite数据库来完成 下面是该使用的代码: 所用的字符串 <?...this.getApplicationContext()); pref.save(name, ID, phone); Toast.makeText(this.getApplicationContext(), "写入数据成功...用户只需要创建一实体,然后想里面添加数据和取出数据,即可 结果如下:

5K50

数据分类及存储特性——NoSQL数据存储

◆ NoSQL数据存储 传统的架构方法是在服务之间共享一个数据库,而微服务却与之相反,每个微服务都拥有独立、自主、专门的数据存储。...选择理想的数据存储的第一步是确定微服务数据的性质,可以根据数据的特点将数据大致做如下划分。 全局共享数据:缓存服务器是存储短暂数据很好的例子。...K-V存储:解决关系数据库无法存储数据结构的问题,主要适合对全局数据进行快速查找的低延时、高性能场景,以Redis为代表。...◆ K-V存储 K-V存储指按照键值(Key-Value)进行的数据存储,其中Key是数据的标识,和关系数据库中的主键含义一样;Value是具体的数据。...◆ 列式数据库 顾名思义,列式数据库就是按照列来存储数据数据库,与之对应的传统关系数据库被称为“行式数据库”,关系数据库就是按照行来存储数据的。

5.4K10

存储数据的基础存储数组

1、数组概念 数组就是存储数据长度固定的容器,保证多个数据数据类型要一致。 软件的基本功能是处理数据,而在处理数据时,必须先进行数据持有,将数据持有之后,再对数据进行处理。...我们将程序中可以临时存储数据的部分叫做容器。 Java当中具有持有数据功能的容器中,数组是最基本的,也是运算速度最快的。...2.1、格式一 2.1.1、数组定义格式 数组存储数据类型 [] 数组名字 = new 数组存储数据类型[长度]; 2.1.2、格式说明 **数组存储数据类型:**创建的数组容器可以存储什么数据类型...数组存储数据类型: 创建的数组容器可以存储什么数据类型。 **长度:**数组的长度,表示数组容器中可以存储多少个元素。 2.1.3、注意 数组有定长特性,长度一旦指定,不可更改。...2.1.4、案例 需求:定义可以存储3个整数的数组容器 int arr[]= new int[3]; 2.2、格式二 2.2.1、数组定义格式 数据类型[] 数组名 = new 数据类型[]{元素1,元素

4.4K20

探索PostgreSQL数据存储存储数据

PG磁盘数据到内存概览 任何传统传统数据库都会借助DRAM来加速数据库磁盘数据的访问。比如PG中的share_buffer,全局为PG数据库中表存储数据page提供缓冲空间。...PG中一个表一般会有三种类型的数据,一个是fsm文件表示当前数据表中可用的空闲空间,另外一个是vm文件来表示数据表中数据可见性的映射,最后一个是以oid来表示的数据文件.fsm是基于page来管理空闲空间...xlog的lsn号 PageXLogRecPtr pd_lsn; // 如果设置了page checksum这里就存储了checksun uint16 pd_checksum; // flag...,属性信息存储在TupleDescData // 包含在tuple header中的信息 typedef struct HeapTupleFields { // 插入事务ID TransactionId...HeapTupleHeaderData; struct HeapTupleHeaderData { // 每个元组的事务信息/记录的多少列信息 union { // tuple事务信息存储

3.6K50

iOS-ZFJRedisLib-超便捷的键值对存储方案,Sqlite数据模型存储库,APP缓存解决方案

前言 本人以前写过一个数据模型存储方法,是我在上上家公司做缓存框架的时候写的,具体也就是在FMDB的基础上封装,直接对数据模型进行存储操作,如下: 《iOS-基于FMDB的操作封装,模型对象的增删改查》...最近本人也不是很忙,加之在Python项目中用到Redis和在APP中用到NSUserDefaults,我就想做一个便捷的基于数据库的键值对存储方案,当然这个方案并不比Redis优秀,我们也知道Redis...ZFJRedisLib 功能结构 ZFJRedisLib主要包含ZFJRedis和ZFJTable两部分,ZFJRedis主要是用于键值对存储,使用简单方便;ZFJTable主要是对于数据模型进行增删改查操作...text_aHR0cHM6Ly96ZmoxMTI4LmJsb2cuY3Nkbi5uZXQ=,size_16,color_FFFFFF,t_70] ZFJRedis ZFJRedis将会自动在本地创建一个ZFJRedis的表,用于存储键值对数据...if(isScu){ NSLog(@"数据删除成功"); }else{ NSLog(@"数据删除失败"); } 6.修改数据 // 修改数据 ZFJModel

50600
领券