前言 工作需要,特意准备一篇入门文章,为新人开发者介绍常见的数据存储。 正文 数据存储 数据存储本质就是运行时的对象保存在文件、数据库中。...数据存储可以分为两步:首先是将对象转换成二进制数据,这一步也叫序列化;相反,将二进制数据转换成对象则称为反序列化;然后是考虑二进制数据如何保存和读取。...系统提供的持久化存储数据的类,该方法是多线程安全的单例,在沙盒中的存储是用plist进行保存。...keychain是iOS提供给App存储敏感和安全相关数据用的工具。keychain同样会被iTunes备份,即使App重装仍能读取到上次保存的结果。...总结 iOS的本地数据存储,其实就是内存数据的序列化和反序列化。
NSUserDefaults简介 在Android和ios都提供了本地轻量级数据存储,底层实现都是基于key-value的方式。...Android里面的叫SharedPreferences,ios的叫NSUserDefaults,使用上也是非常的简单。我们先看一看NSUserDefaults的API。...[[NSUserDefaults standardUserDefaults] synchronize]; 取数据的方法跟存是一样的,取出数据。...initWithDictionary: [[NSUserDefaults standardUserDefaults]dictionaryRepresentation]]; NSUserDefaults只能存储一些简单的数据类型...,如果要存取一些复杂类型的数据(例如实体类),就需要对数据进行归档后转为NSData后存取。
// 读取本地JSON文件 - (NSArray *)readLocalFileWithName:(NSDictionary *)name { // 获取文件路径 NSString...*path = [[NSBundle mainBundle] pathForResource:name ofType:@"json"]; // 将文件数据化 // NSString *...admin/work/json/5012.json"]; NSData *data = [[NSData alloc] initWithContentsOfFile:path]; // 对数据进行...格式化并返回字典形式 return [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:nil]; } // 写入本地...filePath atomically:YES]; if (a) { NSLog(@"路径:%@",filePath); }else { NSLog(@"存储失败
做开发的时候,我们经常需要将数据保存在plist文件中,用这种方式来将数据写入磁盘,这样退出 App 再打开的话,上次写入的文件还在。...atomically useAuxiliaryFile:Bool) ->Bool 然而 writeToFile 这个函数却只属于 NSArray 假如我自定义了一个Person类来写人,然后用数组来存储...想要把它存储在本地plist文件中,需要用到 NSKeyedArchiver 和 NSKeyedUnarchiver 但是在此之前,你需要把你的类改造一下。 ? 起初的类 ?...将peopleArray存储到本地plist ? 将peopleArray从本地plist中取出 附上我在 StackOverFlow 上的相关讨论
本地特性 本地存储将数据存储在浏览器中 设置、读取方便刷新页面数据也不会丢失 容量大,sessionStorage约5M、localStorage约20M 只能存储字符串,将对象通过JSON.stingify...()编码后存储 本地特性 本地存储将数据存储在浏览器中 设置、读取方便刷新页面数据也不会丢失 容量大,sessionStorage约5M、localStorage约20M 只能存储字符串,将对象通过JSON.stingify...()编码后存储 window.sessionStorage 关闭浏览器窗口失效 在同一个页面数据共享 以键值对的形式存储使用 存储数据:sessionStorage.setItem(key,value)...永久有效,除非手动删除,否则关闭页面也会存在 多页面共享数据 键值对存储数据 存储数据:localStorage.setItem(key,value) 获取数据:localStorage.getItem...(key) 删除数据:localStorage.remove(key) 删除所有数据:localStorage.clear()
本地存储 随着互联网的快速发展,基于网页的应用越来越普遍,同时也变的越来越复杂,为了满足各种各样的需求,会经常性在本地存储大量的数据,HTML5规范提出了相关解决方案。...1.1.本地存储特性 1、数据存储在用户浏览器中 2、设置、读取方便、甚至页面刷新不丢失数据 3、容量较大,sessionStorage约5M、localStorage约20M 4、只能存储字符串,可以将对象...JSON.stringify() 编码后存储 1.2.window.sessionStorage 1、生命周期为关闭浏览器窗口 2、在同一个窗口(页面)下数据可以共享 3、以键值对的形式存储使用 存储数据...存储数据: localStorage.setItem(key, value) 获取数据: localStorage.getItem(key) 删除数据: localStorage.removeItem...,用到本地存储 关闭页面,也可以显示用户名,所以用到localStorage 打开页面,先判断是否有这个用户名,如果有,就在表单里面显示用户名,并且勾选复选框 当复选框发生改变的时候change
随着互联网的快速发展,基于网页的应用越来越普遍,同时也变的越来越复杂, 为了满足各种各样的需求,会经常性在本地存储大量的数据,HTML5规范提出了相关解决方案。...1.本地存储特性 1、数据存储在用户浏览器中 2、设置、读取方便、甚至页面刷新不丢失数据 3、容量较大,sessionStorage约5M、localStorage约20M 4、只能存储字符串,可以将对象...JSON.stringify() 编码后存储 2.window.sessionStorage 1、生命周期为关闭浏览器窗口 2、在同一个窗口(页面)下数据可以共享 3、以键值对的形式存储使用 存储数据:...(页面)共享(同一浏览器可以共享) 以键值对的形式存储使用 存储数据: localStorage.setItem(key, value) 获取数据: localStorage.getItem(key...,就在文本框里面自动显示上次登录的用户名 案例分析 把数据存起来,用到本地存储 关闭页面,也可以显示用户名,所以用到localStorage 打开页面,先判断是否有这个用户名,如果有,就在表单里面显示用户名
平时我们经常会采用 NSUserDefaults 或者 Plist 来存储数据到设备,这样即使 App 被关闭,下次再打开的时候数据还在。...这里我写了两个函数来供大家使用,一个用来存数据,一个用来读数据。...Key,就可以操作同一份数据。...这里多提供了一个 type 选项来选择通过 NSUserDefaults 或者 Plist 来存储数据。...但是要注意,在这里 NSUserDefaults 只支持存储 NSArray、NSString 等基本类型,如果你要存储自定义类型的实例,必须使用 StoreType.plist 进行存储。
)中进行文件的操作,不能访问其他 App 的文件系统(存储区域),该文件系统(存储区域)被成为沙盒。...userDomainMask) let url: URL = urlForDocument[0] NSSearchPathForDirectoriesInDomains 访问沙盒目录常用的函数,它返回值为一个数组,在 iOS...默认情况下数据自动以plist形式存储在沙盒的Library/Preferences目录。...// 本地版本号 let localVersion = userDefaults.double(forKey: "localVersion") // 比较大小...可以存储自定义数据。 存储的数据需要继承自NSObject并遵循NSSecureCoding协议。
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属性列表归档...一般存储体积大、不需要备份的非重要数据 5 Library/Preference: 保存应用的所有偏好设置,iOS的Settings(设置)应用会在该目录中查找应用的设置信息。...NSUserDefaults设置数据的时候,不是立即写入,而是根据时间戳定时地把缓存中的数据写入本地磁盘。所以调用了set方法之后数据有可能还没有写入磁盘应用程序就终止了。...Keychain是OS X和iOS都提供的一种安全存储敏感信息工具。 比如,我们可以在Keychain中存储用户名、密码等信息。
Docker mysql 把数据存储在本地目录,很简单,只需要映射本地目录到容器即可 1、加上-v参数 $ docker run -d -e MYSQL_ROOT_PASSWORD=admin --name...mysql/my.cnf:/etc/mysql/my.cnf -v /data/mysql/data:/var/lib/mysql -p 3306:3306 mysql 1 这样,即可修改配置文件,还能把数据存在本地目录
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
这个本地通知就可以做到。 先说明一下我的解决思路:在AppDelegate里面写 1,当用户退出app时创建一个通知,一定时间后调用,比如10秒。...//进入后台响应的方法 - (void)applicationDidEnterBackground:(UIApplication *)application { // 初始化本地通知对象...*currentDate = [NSDate date]; notification.timeZone = [NSTimeZone defaultTimeZone]; // 使用本地时区
localStorage 2、localStorage 存储在本地,容量为5M或者更大,不会在请求时候携带传递,在所有同源窗口中共享,数据一直有效,除非人为删除,可作为长期数据。...456'; //获取: localStorage.getItem("dat"); localStorage.dat //删除 localStorage.removeItem("dat"); 这种存储方式已经作为较大本地缓存使用来使用...可以看到,已经有存储的数据了,那么下面来看看删除。 ? 访问浏览器如下: ? 可以看到已经删除了。
页面关闭数据还在 sessionStorage定义:为每一个数据源维持一个存储区域,在浏览器打开期间存在,包括页面重新加载 保存JSON格式的数据之前,需要把JSON格式的数据转换为字符串,称为序列化...可以使用JSON.stringify()序列化JSON格式的数据为字符串数据。...var stringData = JSON.stringify(jsonObject); 如果把存储的Storage中的数据以JSON格式对象的方式去访问,需要把字符串数据转换为JSON格式的数据,成为反序列化...可以使用JSON.parse()反序列化字符串数据为JSON格式的数据。...var jsonObject = JSON.parse(stringData); API .setItem(key,value)//保留数据 .getItem(key)//取出数据 .removeItem
JS操作cookies方法 : 1.cookie若不设置过期时间关闭浏览器后会自动清除数据 2.存储限制4k 3.同地址下其他文件也能读取到 cookie用字符串拼接即可 cookie
一.简介 localStorage会可以将第一次请求的数据直接存储到本地,这个相当于一个5M大小的针对于前端页面的数据库 ——注意:在IE8以上的IE版本才支持localStorage这个属性。...localStorage属于永久性存储,如果存储内容多的话会消耗内存空间,会导致页面变卡。...二.具体使用方式如下: 1.localStorage – 没有时间限制的数据存储 var arr=[1,2,3]; localStorage.setItem("temp",arr); //存入...参数: 1.调用的值 2.所要存入的数据 console.log(localStorage.getItem("temp"));//输出 2....JSON对象 obj=JSON.parse(localStorage.getItem("temp2")); 四.在谷歌浏览器查看 localStorage: 未经允许不得转载:肥猫博客 » js本地存储
线程本地存储 · 语雀 (yuque.com) 线程本地存储提供了线程内存储变量的能力,这些变量是线程私有的。 线程本地存储一般用在跨类、跨方法的传递一些值。...线程本地存储也是解决特定场景下线程安全问题的思路之一(每个线程都访问本线程自己的变量)。 Java 语言提供了线程本地存储,ThreadLocal 类。...同时,如果父线程的本地变量是引用数据类型的话,父子线程共享相同的数据,存在线程安全问题,甚至导致业务逻辑计算错误。...TTL 的需求场景 需求场景说明 总结 使用 ThreadLocal 库友好地解决了线程本地存储的问题,但是它还存在父子线程值传递丢失的问题,于是 JDK 又引入了 InheritableThreadLocal...参考资料 30 | 线程本地存储模式:没有共享,就没有伤害-极客时间 (geekbang.org) ThreadLocal原理分析及内存泄漏演示-极客时间 (geekbang.org) ThreadLocal
(IE 8和9存储数据仅基于同一主机名,忽略协议(HTTP和HTTPS)和端口号的要求) 2) 单标签页限制。...sessionStorage操作限制在单个标签页中,在此标签页进行同源页面访问都可以共享sessionStorage数据。 3) 只在本地存储。...seesionStorage的数据不会跟随HTTP请求一起发送到服务器,只会在本地生效,并在关闭标签页后清除数据。...(若使用Chrome的恢复标签页功能,seesionStorage的数据也会恢复)。 4) 存储方式。seesionStorage的存储方式采用key、value的方式。...5) 存储上限限制:不同的浏览器存储的上限也不一样,但大多数浏览器把上限限制在5MB以下。
localStorage: 存储上限限制:不同的浏览器存储的上限也不一样,但大多数浏览器把上限限制在5MB以下。 ...localStorage与sessionStorage的区别:就是localStorage属于永久性存储,而sessionStorage属于当会话结束的时候,sessionStorage中的键值对会被清空... 关闭浏览器后,再打开仍有数据 清除缓存加载后仍有数据 同网络地址页面均能得到数据 // localStorage使用示例
领取专属 10元无门槛券
手把手带您无忧上云