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

使用新的NSKeyedUnarchiver API取消归档数据,但无法满足unarchivedObjectOfClass it要求

NSKeyedUnarchiver是iOS开发中用于反序列化归档数据的类。它可以将归档的数据解码为原始对象,并提供了一些方法来获取特定类型的对象。

在iOS 12及更高版本中,苹果引入了新的API来替代NSKeyedUnarchiver,即unarchivedObject(ofClasses:from:)方法。这个方法可以解码归档数据,并返回指定类的对象。它的参数是一个类数组,用于指定可以解码的对象类型。

然而,根据提供的问题描述,使用新的NSKeyedUnarchiver API无法满足unarchivedObject(ofClasses:from:)方法的要求。这可能是因为unarchivedObjectOfClass方法要求解码的对象必须是指定类的实例,而不是其子类。

为了满足unarchivedObjectOfClass方法的要求,可以尝试使用unarchivedObject(ofClass:from:)方法。这个方法接受一个类作为参数,并返回解码后的对象,如果解码失败则返回nil。

在腾讯云的产品中,与归档数据相关的服务是对象存储(COS)。对象存储是一种云存储服务,可以存储和检索任意类型的数据,包括归档数据。腾讯云的对象存储产品是COS,可以通过以下链接了解更多信息:

腾讯云对象存储(COS):https://cloud.tencent.com/product/cos

需要注意的是,以上提供的答案仅供参考,具体的解决方案可能需要根据实际情况进行调整和优化。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

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.2K20

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

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

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

    1.1K30

    JDK13六大重要特性

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

    1K30

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

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

    3K100

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

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

    1.2K30

    iOS中浅复制与深复制

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

    52220

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

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

    3.2K50

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

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

    4.6K21

    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.3K20

    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]; } 例子:是否展示过版本特性

    1.9K20

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

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

    5.9K107

    【云原生进阶之数据库技术】第二章-Oracle-使用-3.3.2-Oracle Data Guard原理

    LGWR进程写入在线重做日志,当满足相关条件后在线重做日志会进行切换,ARC0进程归档该日志至主库本地归档目录(log_archive_dest_1配置),归档完成后,ARC1进程就会将归档日志传输到备库...也就是说主库LGWR进程依赖于网络状况,有时这种要求可能过于苛刻,推荐使用LGWR ASYNC方式。...使用这种方式要求主库必须配置 Standby RedoLog,而备库必须使用LGWR,SYNC,AFFIRM 方式归档到 Standby Database。...其实现方式与最大保护模式类似,也是要求所有事务在提交前必须保障redo数据至少在一个standby数据库可用,不过与之不同是,如果出现故障导致无法同时写入standby数据库redo log, primary...这种方式可以使用 LGWR ASYNC 或者 ARCH 进程实现,备库也不要求使用 Standby RedoLog。

    29810

    开发者必看:Android UI及API 优化指南

    比如,Retrofit 中 Call#cancel 可以取消已经发送网络调用请求或者确保该调用永远不会被执行(前提是在使用 Call#cancel 前,执行尚未发生)。...而通过 NotificationManager API,开发者既可以创建又能够取消消息通知。...API 应该正确引导用户使用 API,在需要地方使用默认值。API 应该操作简单容易上手。开发者可以通过提供默认值,帮助用户使用 API。...据统计,App 内只有 20% 功能使用量达到 80%,这要求开发者在 “简洁界面” 和 “强大功能” 达到一种平衡。找到属于您 App 中 20% 常用功能,让这部分功能尽量简单易上手。...同时所有上述内容和其他信息都会显示在详情页面中,满足好奇心强用户需求。 API 用户只有一个目的:用 API 更快解决问题。所以让您 API 快准狠,用最少时间,最有效方法,解决用户痛点。

    1K60
    领券