问题标签 [nsarchiving]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ios - 将 CloudKit 记录保存到本地文件保存除 CKAsset 之外的所有字段
我正在尝试将一组 CKRecords 保存到文档目录中,以便快速启动和离线访问。
从 CloudKit 下载 CKRecords 工作正常,我可以毫无问题地在每条记录中使用 CKAsset。但是,当我将下载的 CKRecords 数组保存到本地文件时,CKAsset 不包含在数据文件中。我可以从保存到文档目录的文件大小中看出这一点。如果我将磁盘文件重组为 CKRecords 数组,我可以检索除 CKAsset 之外的所有字段。除了系统字段和 CKAsset 字段之外,所有字段都是字符串。
用于测试 - 我有 10 个 CloudKit 记录,每个记录有六个小的字符串字段和一个大约 500KB 的 CKAsset。当我检查文档中生成的文件的大小时,文件大小约为 15KB。
这是保存数组的函数。AppDelegate.ckStyleRecords 是下载的 CKRecords 的静态数组。
这是重构数组的函数。
调用上面的:
刷新使用 ckStyleRecords 数组的 tableView 后,所有数据似乎都是正确的,除了 CKAsset(在本例中是 SceneKit 场景)当然丢失了。
任何指导将不胜感激。
nsuserdefaults - 如何使用可编码值对字典进行编码/解码以存储在 UserDefaults 中?
我正在尝试在 iOS UserDefaults 中存储映射到公司对象(来自结构公司)的公司名称(字符串)字典。我创建了 Company 结构并使其符合 Codable。我有一个例子,一位朋友在我的项目中帮助我创建了一个类 Account,并通过创建一个 Defaults 结构(将包括示例代码)将其存储在 UserDefaults 中。我在 swift 文档中读到字典符合 Codable 并且为了保持 Codable,必须包含 Codable 对象。这就是我让 struct Company 符合 Codable 的原因。
我为公司创建了一个符合 Codable 的结构。我尝试使用模型代码创建一个新的结构 CompanyDefaults 来处理公司字典从/到 UserDefaults 的获取和设置。我觉得我对需要发生的事情以及应该如何实施(考虑到良好的设计)有一些初学者误解。
我希望存储的字典看起来像[String:Company]
公司名称将是 String 和 Company 的 Company 对象
我在做一些研究时使用了符合 Codable,它似乎是完成类似任务的新方法。
公司结构
默认结构来控制存储
我应该能够在我的代码中引用存储的字典,例如CompanyDefaults.companies.count
作为参考,一位朋友帮助我对存储在用户默认值中的一组 Account 类执行了类似的任务。完美适用的代码如下。我尝试不同方式的原因是我有不同的数据结构(字典)并决定使用结构。
ios - 如何将 NSKeyedUnarchiver unarchiveObjectWithData 更新为 NSKeyedUnarchiver unarchivedObjectOfClass:[fromData:error:
我的应用程序当前使用此已弃用的功能:
要更新,我已转换为:
数据最初是这样编码的:
什么可能导致 IF 语句使用较新的代码返回 FALSE?
请注意,我主要关心的是在弃用存档功能之前读取存储的现有数据。简单地更改为较新的功能并不能解决问题。
swift - 如何编码/解码 [CKRecordZone.ID: CKServerChangeToken]?
我正在尝试对 ID 和令牌字典进行编码/解码。但由于某种原因,解码总是给我一个零。
怎么修?
swift - 'NSKeyedUnarchiveFromData' 不应用于取消归档,并将在未来版本中删除
我在日志中收到一条消息说
'bundleNamePlaceholder'[8424:100146] [general] 'NSKeyedUnarchiveFromData' 不应用于取消归档,并将在未来版本中删除
我不清楚该消息,但我假设它可能与 CoreData 对象或其内容有关
有没有办法捕捉抛出此消息的原因或可能导致此消息的原因?
cocoa - 使用 NSKeyedUnarchiver 解码 NSArchiver
我有一些旧档案,它们基本上是使用 NSArchiver 创建的存储首选项。我希望能够使用 NSKeyedUnarchiver 对它们进行解码,因为不推荐使用 NSArchiver/NSUnarchiver 以支持它们的键控对应物。
有什么办法可以使这项工作?