展开

关键词

iOS本地数据存储

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

58520

iOS14开发-数据存储

)中进行文件的操作,不能访问其他 App 的文件系统(存储区域),该文件系统(存储区域)被成为沙盒。 userDomainMask) let url: URL = urlForDocument[0] NSSearchPathForDirectoriesInDomains 访问沙盒目录常用的函数,它返回值为一个数组,在 iOS 默认情况下数据自动以plist形式存储在沙盒的Library/Preferences目录。 UserDefaults.standard override func viewDidLoad() { super.viewDidLoad() // 取出存储数据 可以存储自定义数据存储数据需要继承自NSObject并遵循NSSecureCoding协议。

17420
  • 广告
    关闭

    对象存储COS专场特惠,1元礼包限时抢

    一站式解决数据备份、共享、大数据处理、线上数据托管的云端存储服务,新用户享四重好礼

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

    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中存储用户名、密码等信息。

    34620

    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

    22720

    iOS 轻量级存储

    NSUserDefaults简介 在Android和ios都提供了本地轻量级数据存储,底层实现都是基于key-value的方式。 Android里面的叫SharedPreferences,ios的叫NSUserDefaults,使用上也是非常的简单。我们先看一看NSUserDefaults的API。 [[NSUserDefaults standardUserDefaults] synchronize]; 取数据的方法跟存是一样的,取出数据。 initWithDictionary: [[NSUserDefaults standardUserDefaults]dictionaryRepresentation]]; NSUserDefaults只能存储一些简单的数据类型 ,如果要存取一些复杂类型的数据(例如实体类),就需要对数据进行归档后转为NSData后存取。

    57480

    iOS 本地轻量级数据存储之NSUserDefaults

    NSUserDefaults简介 在Android和ios都提供了本地轻量级数据存储,底层实现都是基于key-value的方式。 Android里面的叫SharedPreferences,ios的叫NSUserDefaults,使用上也是非常的简单。我们先看一看NSUserDefaults的API。 [[NSUserDefaults standardUserDefaults] synchronize]; 取数据的方法跟存是一样的,取出数据。 initWithDictionary: [[NSUserDefaults standardUserDefaults]dictionaryRepresentation]]; NSUserDefaults只能存储一些简单的数据类型 ,如果要存取一些复杂类型的数据(例如实体类),就需要对数据进行归档后转为NSData后存取。

    56080

    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可以使用图形化界面来创建对象

    1.1K100

    点进来你就懂的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底层之间的交互。

    81810

    iOS存储方式之归档

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

    12320

    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系统的设置应用会从该目录中读取偏好设置信息。因此,该目录一般不用于存储应用程序产生的数据

    19010

    iOS:本地json文件读取、存储

    NSString *path = [[NSBundle mainBundle] pathForResource:name ofType:@"json"]; // 将文件数据化 admin/work/json/5012.json"]; NSData *data = [[NSData alloc] initWithContentsOfFile:path]; // 对数据进行 filePath atomically:YES]; if (a) { NSLog(@"路径:%@",filePath); }else { NSLog(@"存储失败

    1.7K10

    数据存储之文件存储

    FileOutputStream os = openFileOutput("file.txt", Context.MODE_PRIVATE); String text = "写数据到文件 data/data//files目录下 openFileOutput和openFileInput方法可以获得操作文件的OutputStream以及InputStream对象,而且可以通过流对象处理任何文件的数据 totalBlocks = stat.getBlockCount(); return totalBlocks * blockSize; } /** * 获取手机内置存储剩余存储空间 stat.getAvailableBlocks(); return availableBlocks * blockSize; } /** * 获取手机内置存储总的存储空间 byte[] buffer = new byte[8192]; int count = 0; // 写入数据

    18520

    存储数据

    数据缓存 通过《网络数据采集和解析》一文,我们已经知道了如何从指定的页面中抓取数据,以及如何保存抓取的结果,但是我们没有考虑过这么一种情况,就是我们可能需要从已经抓取过的页面中提取出更多的数据,重新去下载这些页面对于规模不大的网站倒是问题也不大 使用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服务器的验证口令。

    18430

    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(), "写入数据成功 用户只需要创建一实体,然后想里面添加数据和取出数据,即可 结果如下:

    8450

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

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

    9810

    Android数据存储

    数据存储 Android数据存储的几种形式 Internal Storage Store private data on the device memory. Android平台中嵌入了一个关系型数据库SQLite,和其他数据库不同的是SQLite存储数据时不区分类型,例如一个字段声明为Integer类型, 我们也可以将一个字符串存入, 一个字段声明为布尔型 除非是主键被定义为Integer,这时只能存储64位整数创建数据库的表时可以不指定数据类型,例如: CREATE TABLE person(id INTEGER PRIMARY KEY 我们在更新或安装apk时一般将其放到外部存储设备中来进行安装,但是如果一个手机没有外部存储设备该怎么办呢?总不能就不给更新或者安装了。 安装应用的app是没有权限获取你应用的内部存储文件的,所以才会安装不上,那该怎么解决呢? 答案就是修改权限。

    44270

    05存储数据

    Python3中,urllib.request.urlretrieve根据文件的URL下载文件。

    15910

    数据存储漫谈

    数据系统的核心就是两件事,读和写,当数据量还少的时候,读写的性能不会有明显区别,随着数据量的增大,读写变成了一个trade-off,当你拥有优秀的写性能时,读数据性能就会下降,反之亦然。 这就是最简单的一个数据存储系统。 写:这个数据系统写的性能相当优秀,因为它没有做任何操作,仅仅只是把新来的数据添加到文件的末尾,这意味着数据系统可以并发的去写数据,而不需要担心任何冲突。 数据系统A已经存储了如下数据: foo:bar foo1:bar1 为了更快的读取数据,可以在内存里维护一张hash表,把每个key值出现的位置记录下来,当需要读取数据时,直接从hash表中读取: foo :0 foo1:8 也就是当B系统需要读取foo1时,会先去hash表找到foo1,找到对应的位移8,回到存储数据的文件直接将指针定位到8这个位置,即可获得value,而不需要遍历整个数据文件。 主流数据系统C B系统的读性能获得了极大的提升,但是hash表太占用内存,并且对范围查询不友好,调整下思路,在存储的时候,将数据进行有序排列,例如按照key值从大到小进行排序: A_key:A_value

    14920

    SharedPreferences存储数据

    Android应用开发SharedPreferences存储数据的使用方法 SharedPreferences是Android中最容易理解的数据存储技术,实际上SharedPreferences处理的就是一个 key-value(键值对)SharedPreferences常用来存储一些轻量级的数据。 1、使用SharedPreferences保存数据方法如下: //实例化SharedPreferences对象(第一步)  SharedPreferences mySharedPreferences ();  //使用toast信息提示框提示成功写入数据  Toast.makeText(this, "数据成功写入SharedPreferences!" 2、使用SharedPreferences读取数据方法如下: //同样,在读取SharedPreferences数据前要实例化出一个SharedPreferences对象  SharedPreferencessharedPreferences

    447100

    异步数据存储

    在过去几年工作中,对NoSQL数据存储使用经验以及随着NoSQL成为主要的数据存储和检索方式,让我洞察到应用程序必经的发展方向。 在这个异步的数据存储世界中,我的图像转换器逻辑应该能够侦听数据存储中的INSERT或UPDATE事件并转换传入数据,自动存储上传图像的缩略图。 在我的Web应用程序控制器中,我将使用异步数据存储客户端插入上传的图像。 创建新的数据存储条目,包括足以触发缩略图监听器的元数据。 将图像数据异步“推入”数据存储区并注册一个事件处理程序,以便在监听程序成功缩略图像时调用客户端的回调函数。 数据存储应该提供一个Web UI,以便开发人员可以查看系统的内部,看看事件是否正在等待提交。

    611110

    相关产品

    • 归档存储

      归档存储

      腾讯云归档存储(Cloud Archive Storage, CAS)是面向企业和个人开发者提供的低成本、高可靠且易于管理的云端离线存储服务,适用于海量、非结构化数据长时间备份,实现数据的容灾和c。归档存储采用分布式云端存储,您可以通过 RESTful API 对存储的数据进行访问。归档存储易于管理,您无需关心硬件维护及容量扩展;按实际使用量付费,为您节省额外成本。

    相关资讯

    热门标签

    活动推荐

    扫码关注腾讯云开发者

    领取腾讯云代金券