首页
学习
活动
专区
圈层
工具
发布

iOS-Swift 完整登录方案(touchID&faceID& keychain)一iOS-Swift 完整登录方案(touchID&faceID& keychain)一

最近app的登录部分需要重新梳理,而且产品爸爸提了些要求。代码已经提测空出一点时间自己整理一下。...NSKeyedArchiver 这个也是iOS中比较基础的数据本地化方案,因为Apple对数据会做加密然后写成文件,安全性相对较高,个人信息推荐使用这种方式来缓存。...(注:有些极少数用户会选择越狱,你保存的信息就会成明文信息), 使用有一点需要注意,所缓存的对象一定要遵守NSCoding协议,且该协议无法在extension中使用.如果大量使用归档建议使用runtime...而且使用了新的API归档就必须使用新的API解档。...path") return false } } catch { assert(true, "无法生成归档数据") return

2.7K20

iOS应用数据存储(数据持久化)的常用方式一、iOS数据持久化方式二、应用沙盒(应用程序的文件夹)三、使用方法

一、iOS数据持久化方式 (1)XML属性列表(plist)归档 (2)Preference(偏好设置),本质还是通过“plist”来存储数据, 但是使用更简单(无需关注文件、文件夹路径和名称) (...、打印沙盒路径 NSLog(@"%@",NSHomeDirectory()); 2、使用Documents目录进行数据持久化的保存,我们平时操作数据主要使用Documents目录 NSString *path...,例如:游戏进度、涂鸦软件的绘图 目录中的文件会被自动保存在 iCloud 注意:不要保存从网络上下载的文件,否则会无法上架!...(); Library/Caches: 保存临时文件,后续需要使用,例如:缓存图片,离线数据(地图数据) 系统不会清理cache目录中的文件 就要求程序开发时,必须提供cache目录的清理解决方案...:path]; // 根据数据,解析成一个NSKeyedUnarchiver对象 NSKeyedUnarchiver *unarchiver = [[NSKeyedUnarchiver alloc] initForReadingWithData

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

    iOS数据持久化之二——归档与设计可存储化的数据模型基类

    1、归档的原理         归档是将一种或者多种数据类型进行序列化,解归档的过程就是将序列化的数据进行反序列化的解码,这里需要注意一点,归档的核心并非是数据的持久化处理,而是数据的序列化处理,持久化的处理依然是通过文件存取来实现的... 只是解归档的时候不同          //方式一的解归档:先获取data数据,在进行data数据的解归档     NSLog(@"%@",[NSKeyedUnarchiver unarchiveObjectWithData...); 上面的示例是对字符串类型进行的归档,是对单一的数据对象进行的归档,当然,这里的对象是支持数组、字典等集合的,但集合其中的对象,也必须全部支持归档操作。...(2)通过构造新的archiver对象,对多个对象进行归档         除了上面的类方法,我们还可以自己构造一个归档对象,来对多种不同的对象进行归档:     NSString *homeDictionary...四、为志同道合的朋友分享         这个model集成在了我的一个开源的开发框架中,当然,那里面也综合和许多许多这样方便开发者使用的功能,如果你感兴趣,可以在https://github.com/

    1.4K30

    JDK13的六大重要新特性

    支持Unicode 12.1 动态CDS归档(Dynamic CDS Archiving) java.net.Socket和java.net.ServerSocket API的重新实现 ZGC的增强 文本块...该动态归档支持以下类型: 当成功映射两个存档时,支持静态基本存档(默认CDS存档)+动态存档 当无法映射动态存档时,仅静态基本存档 当前,动态存档要求将默认CDS存档用作基本存档。...如果无法在运行时映射和使用基本层归档,则将自动禁用顶层动态归档。 怎么使用? 如果指定了-XX:ArchiveClassesAtExit选项,则当应用程序退出时,将动态创建共享档案。...页面缓存中的ZPage已准备好重用以满足新的堆分配,在这种情况下,它们将从缓存中删除。页面缓存对于性能至关重要,因为提交和取消提交内存是昂贵的操作。...类似于上述政策的一项政策可能会相当有效。但是,也可以设想更复杂的策略,而不涉及添加新的命令行选项。例如,启发式算法根据GC频率或其他一些数据找到合适的超时值。

    1.2K30

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

    遵循NSCoding协议 NSCoding协议声明了两个方法,这两个方法都是必须实现的。一个用来说明如何将对象编码到归档中,另一个说明如何进行解档来获取一个新对象。...注意 必须遵循并实现NSCoding协议 保存文件的扩展名可以任意指定 继承时必须先调用父类的归档解档方法 扩展:iOS开发基础-数据存储方式(归档) 2.4 手动存放沙盒 手动将数据存放到沙盒...ORM是将关系数据库中的表,转化为程序中的对象,但实际上是对数据中的数据进行操作。   ...Core Data在后台也是使用SQLite来存储数据的,但是开发人员不能直接访问这些数据,只能通过Core Data提供的API来操作,如果一旦人为的通过SQLite修改这些数据那么使用Core Data...SQLite是使用C语言写的开源库,实现了一个自包含的SQL关系型数据库引擎,可以使用SQLite存储操作大量的数据,作为关系型数据库我们可以在一个数据库中建立多张相关联的表来解决大量数据重复的问题。

    3.7K100

    老司机出品——数据持久化之基于FMDB的ORM数据库设计

    ,支持的数据类型基本满足需要。...---- 归解档 相对于前两种方法,归解档这种方法更适应于模型等特殊数据类型的持久化。想要归解档,你的模型首先要遵循协议。然后在需要归档或解档的地方直接调用对应方法即可。...归档的优势在于它支持对象的持久化了而不是那几种特殊的数据类型,悲催的是,你仍需要确保你要归档的属性的数据类型是遵循的。...而在OC中使用sqlite3目前又主要分为3中方式: 使用sqlite3提供的库函数 FMDB CoreData sqlite3提供的库函数 sqlite3 本身是一套纯C的API,使用起来因人而异,有的喜欢有的不适应...iOS FMDB库详解 他的优势在于他将增删改三个操作都抽象成update方法,查抽象成query方法,在使用上API十分简洁。短板就在于你还是要针对不同模型去组装不同的sql语句。

    1.5K30

    iOS中的浅复制与深复制

    ),copy和mutableCopy都是深复制,都会创建一个新的同样的内容来返回,但是要注意,copy返回的是不可变对象,也就是说即使你对一个NSMutableString做copy操作,返回给另一个NSMutableString...),copy和mutableCopy都是深复制,都会创建一个新的同样的内容来返回,但是要注意两点,一是copy返回的还是不可变对象,二就是上面说的,这个深复制只是单层深复制,里面包含的元素还是指针浅复制...copyItems:YES]; copyItems设为YES会对集合中的每一个对象尝试做深复制,但是要求集合中的元素对象遵循NSCopying 协议,否则就会报错。...但这其实还是对元素这一层的单层深复制,再下去也没有完全深复制。...另一种方法是对集合做归档和解档(关于归档与解档可以看传送门:iOS存储方式之归档): NSArray *trueDeepCopyArray = [NSKeyedUnarchiver unarchiveObjectWithData

    89920

    iOS开发笔记(十三)

    最好还是按照要求,添加是否nullable的声明,在编译期间发现问题。...4、清空模拟器的keychain 有业务场景需要,需要清除某个库的存储信息,但是该信息存在keychain,即使卸载重装也无法清除。 此时可以找到模拟器的keychain数据库,手动删除。...)encoding;可以转换成char*字符串; 2、NSKeyedUnarchiver偶现NSException NSKeyedUnarchiver有时候在解压的时候会出现下面的异常: NSException...(即使是weak,指向自己也是不应该出现的;另外这种写法虽然不规范,但不应该出现死循环,相信后续的iOS版本会修复) 4、 premain函数的方法 最近发现有同事使用下面的这个方法: static void...3、charles进行map local数据异常 最近charles出现异常情况,抓包正常,部分接口map local数据正常,部分出现下面的异常: ?

    1.6K20

    PCS7+(WINCC)数据归档与备份

    如下图,通过对“变量记录”的组态,当“更改分段的时间”或者“单个分段的最大尺寸”两个条件任意满足一个,就会生成一个快速归档的数据片段,文件格式的后缀是.mdf,后缀为.ldf 的文件只是日志文件。...,但格式不同的文件,两个文件必须一起存在同一个文件夹,才能被归档有效识别,如果只有其中一个文件,则数据无效,无法看到相应时间段内的趋势曲线、报警信息、操作记录等。...,虽然生成有慢速归档文件,但其中是没有数据的,因此以下数据恢复测试都使用快速归档 TagLoggingFast 的文件。...再次取消激活该 WINCC,过一段时间,再次激活运行,之前未生成结束标志的文件会立即生成新的结束时间标志,时间为 WINCC 最近取消激活时的时间,而非最近激活运行时的时间。 步骤 3....测试方案 B:.使用新的服务器离线测试,新服务器不联网至 PLC 的 CPU,原来的冗余服务器照常运行,不会影响现场操作员的生产操作,生产数据也不会被中断。 步骤 1.

    6K22

    「支持ISO27001的GTD协作平台」数据生命周期管理方案与加密通信协议

    然而,“任务数据存在哪、敏感信息如何传、安全合规怎么管”成为新的痛点:员工用个人GTD应用处理工作导致数据分散、核心任务信息通过非加密渠道传输、企业无法满足ISO27001等审计要求……据2025年企业数字合规调查报告...过期与残留风险:项目结束后,相关的任务历史数据缺乏自动归档或安全销毁机制,形成敏感数据残留,违反ISO27001 A.8.2.3(介质处置)要求。...• 审计溯源能力不足操作不可追溯:无法清晰记录“谁在何时创建、修改、访问或删除了某个任务及其附件”,难以满足ISO27001 A.12.4(操作日志)的审计要求。...因此,一个支持ISO27001的GTD平台选型或自建,需紧扣以下核心维度:数据安全生命周期全程覆盖:必须实现对任务数据从创建、存储、使用、共享到归档/销毁的全过程安全管控。...此机制确保即使数据库被泄露,攻击者也无法获取任务明文,完美符合ISO27001关于密码学保护敏感信息的要求。

    13310

    公有云存储方案:迁移哪些数据

    使用对象存储和商业硬件是进入云计算服务的一种方案,但并非最佳方式。...当开始支持新的、云架构下的应用(这类应用是根据RESTful应用编程接口[RESTful API]编写的)的存储需求时,对象存储将会非常有意义。...与此同时,公有云存储厂商通常提供额外的存储相关服务来满足特定用例的需求,例如关系型和非关系型数据库应用、数据库同步、长期归档存储(比如亚马逊Glacier)以及云存储网关(比如AWS存储或微软StorSimple...尽管公有云的安全性已经稳步提升,但这并不能够解决高度受管控数据的存储需求,对于此类数据必须满足严密的安全性、隐私以及/或者其他合规性标准。...公有云存储应用往往无法达到生产应用所要求的性能等级和可用性,因此,厂商不愿意在他们的服务等级条款中包含任何超越最小可用性的责任义务(并且没有任何有关性能的保证)。

    4K50

    YashanDB ALTER DATABASE语句

    创建表空间下的数据文件时可以通过设定数据文件自动扩展来满足用户对于更大数据文件的需求,但如果存储空间并不充足,或者数据文件按预期指定过大而实际使用很小,或者数据文件中存在大量被删除的临时数据而空间并没有被回收...执行offline的场景:存在数据文件损坏或丢失导致无法打开数据库,此类场景只能在数据库处于MOUNT时执行offline。表空间的数据文件在有数据时无法被删除,但不再需要使用该数据文件。...当数据库处于主备复制模式(单机主备部署或主备共享集群部署)时,无法从归档模式切换为非归档模式。...在共享集群部署下,无法使用TIMEOUT字段。...#until time date清理指定时间之前生成的并且满足清理条件的归档。#until scn integer清理指定SCN之前生成的并且满足清理条件的归档。

    31910

    iOS常用的数据存储方式

    归档NSArray 5.1 FMDB例子 5.2 例子2:利用NSData归档2个Person对象到同一文件中 5.3 例子3:利用NSData实现深copy 6.1 基本用法 6.2 数据库缓存性能进行优化...的sql日志输出 开关 7.9、coredata 的延迟加载 7.10、NSManagedObject子类 前言 iOS应用数据存储的常用方式 1、preference偏好设置 2、XML属性列表归档...(plist) 3、使用Keychain 存储,例如存储UUID来解决设备唯一标识符获取方案 4、NSKeyedArchiver归档(NSCoding) 5、SQLite3 6、Core Data...例如,游戏应用可将游戏存档保存在该目录 3、tmp: 保存应用运行时所需的临时数据,使用完毕后再将相应的文件从该目录删除。应用没有运行时,系统也可能会清除该目录下的文件。...:(NSString *)key{ return [[NSUserDefaults standardUserDefaults] objectForKey:key]; } 例子:是否展示过版本新特性

    2.5K20

    腾讯云对象存储服务发布新一代超高性价比数据存储产品——深度归档存储

    什么是“深度归档存储” 深度归档存储是一种针对冷数据安全且低成本的存储方式,相比于低频存储和归档存储,其价格更低,适用于访问频率极低(如半年一次),但需要持久存储的数据,如日志审计数据,安防监控数据。...其安全性、持久性、低价格等特性,能最大程度的满足冷数据存储的诉求。...在软件上,通过数据压缩技术,使用户有效数据存储密度获得最大化的提升。 在硬件上,腾讯云深度归档存储启用新的高密度存储介质,离线场景下,也能最大化的发挥出存储介质的优势。...深度归档存储支持对象存储 COS 的原生 API 接口,用户可以利用对象存储 COS 的控制台、SDK 以及各种生态工具来指定数据的存储类型,即可便捷快速地将数据转为深度归档存储。...用户将此类数据上传至深度归档存储中保存,能够满足用户对合规性文件的大数据量、长时间保存,检索频率较低等需求,使用深度归档存储能够显著降低管理和存储成本。 2.

    6.6K107
    领券