问题标签 [nskeyedarchiver]
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.
objective-c - 如何使用 NSPropertyListXMLFormat_v1_0 格式的 NSKeyedArchiver 将对象序列化为文件?
希望这个标题足够清楚。无论如何,似乎:
限于NSPropertyListBinaryFormat_v1_0
。
我需要格式是人类可读的 [so xml]。如果您有兴趣,这是项目的一部分,我最终将在 github 上发布一篇关于“如何对 GPS 应用程序进行单元测试”的博文
:-)
iphone - 从 NSKeyedArchiver 加载 Singleton 的状态
我有一个类,我已经把它做成了一个单例,并且能够使用 NSKeyedArchiver 来保存它的状态,但是我不能把它的状态拉回来。
在我拥有的加载功能中
使用此代码,decodeObjectForKey 返回什么?它不能真的是 Venue 的另一个实例,并且它没有加载任何保存的值。在我将其转换为单例保存和加载之前工作正常。
cocoa - 归档和取消归档导致访问不正确
我在设置模型对象以在 iphone 的简单图形应用程序中保存用户生成的 CALayers 的视觉状态时遇到问题。
我试图通过将这些属性传递给实现 NSCoding 协议的模型对象,然后传递给应用程序委托拥有的 NSMutableArray 来保存屏幕上所有当前图层的背景颜色和框架。然后我用 NSKeyedArchiver 归档数组并将其存储在 NSUserDefaults 中。
每个 CALayer 的 backgroundColor 属性都转换为 UIColor 以由模型对象编码以进行存储。我认为我错误地取消了阵列或未正确地从未归档的阵列恢复状态。当我尝试访问存储在模型对象中的 UIColor 对象时,我得到一个 EXC_BAD_ACCESS。
我认为这可能是编码 UIColor 对象的错误,因此尝试使用 CGColorGetComponents 函数将值从 CGColorRef 中提取出来并将它们存储在数组中以进行编码和存档,但是在取消存档后我遇到了相同的访问错误的结果,所以我认为我只是做错了。
这是我的模型对象:
这是我的归档实现:
这是我恢复状态的地方:
对此的任何帮助将不胜感激。我几乎是个菜鸟。我正在以几乎相同的方式对从颜色的浮点数转换而来的 NSNumbers 的 NSArray 进行编码、归档和解构,并且访问不正确。
iphone - 对持久键控存档进行版本控制?
对于我当前的应用程序,我使用 NSKeyedArchiver 方法在启动之间将我的对象持久保存到 iPhone。我想知道在使用版本号创建此文件时标记此文件是否有意义,以便将来当应用程序更新时,我们将知道如果需要迁移,我们正在处理什么样的数据。这是否推荐用于像使用 NSKeyedArchiver 序列化的自定义对象的 NSArray 一样简单?如果是这样,如何/在哪里存储版本号?
谢谢!
iphone - iPhone - NSKeyedUnarchiver 内存泄漏
我NSKeyedUnarchiver unarchiveObjectWithFile:
用来读取应用程序数据。在 Instruments 中使用 Leaks 运行时,我被告知以下会产生泄漏:
该行:
applicationConfig = [NSKeyedUnarchiver unarchiveObjectWithFile:archivePath];
正在产生 32 字节的内存泄漏。applicationConfig 是一个实例变量。我的 initWithCode 函数只是做:
知道为什么
applicationConfig = [NSKeyedUnarchiver unarchiveObjectWithFile:archivePath];
是否产生泄漏?
iphone - Archiver 在 iPhone 上不使用加密保护 SQLite 数据
我正在开发一个 iphone 应用程序,它使用带有 SQLite 数据存储的 Core Data 和资源包中的大量图像。我想要一种“简单”的方法来混淆 SQLite 数据库的文件结构和图像文件,以防止随意的黑客/不道德的开发人员获得对它们的访问权限。部署应用程序时,数据库文件和图像文件将被混淆。在启动应用程序时,它会读入并取消混淆数据库文件,将未混淆版本写入用户“tmp”目录以供核心数据使用,并根据需要读取/取消混淆图像文件。
我想对文件应用一个简单的算法,以某种方式扰乱/操作文件数据,以便在文本编辑器中打开数据库时无法识别 sqlite 数据库数据,因此其他应用程序都无法识别( SQLite 管理器、Photoshop 等)
从我读到的信息看来,我可以使用 NSFileManager、NSKeyedArchiver 和 NSData 来完成此操作,但我不确定如何继续。多年来一直在开发软件,但我对 CocoaTouch、Mac 和 iPhone 都是新手。也不必保护/加密我的数据,所以这是新的。
任何想法、建议或解决方案链接都将受到赞赏。
iphone - 更长的密钥是否会使 NSKeyedArchiver 文件显着更长
当我encodeWithCoder:
为 iPhone 应用程序填写目标 c 类时,如果我对所有变量使用长键而不是短键,是否会使存档文件变大?
例如,如果我使用这样的非常长的键:
它会使存档文件比我使用这样的东西更长:
假设我有大量的整数和布尔值。
iphone - iPhone应用程序丢失文件
我正在编写一个 iPhone 应用程序——某个社交网络的客户端。该应用程序支持多个帐户。有关帐户的信息存储在密钥存档中。
一种用于保存的方法:
一种用于阅读的方法:
该方法saveAccounts
仅在添加/修改/删除某些帐户时使用。loadAccounts
每次应用程序启动时都会使用该方法。没有任何其他代码可以访问此文件。
我和我的一位测试人员遇到了问题。在某个时刻,开始表现得好像accounts.bin
消失了。如果loadAccounts
返回nil
,应用程序会提供添加帐户。输入账号后(应用程序必须调用saveAccounts
),应用程序正常运行,但是当我再次启动它时,它要求我再次添加帐户。唯一的解决方案是将应用程序重新安装到 iPhone 上,重新安装后它可以运行一段时间并出现任何问题。
我们(我和我的测试人员遇到问题)使用 3.1.2 的 iPhone 3G。另一位测试人员在使用 3.1.2 的 iPhone 3GS 上没有遇到此问题。
任何想法为什么这个文件会消失?
更新
我在我的代码中发现了错误。有一个代码可以删除整个 Document 目录。因为这部分代码是与远程服务器相关的,所以很难追踪到这段代码。错误仅在非常罕见的情况下出现。
现在发现了bug,并更正了代码。wkw的回答并没有解决我的问题,但它迫使我更深入地挖掘。谢谢!
iphone - 从使用 NSKeyedArchiver 存储的 NSMutableArray 中的 NSDictionary 读取字符串时出现问题
我正在使用一系列 NSDictionaries 保存一些数据,这些数据存储在 NSMutableArray 中并使用 NSKeyedArchiver 存档。
我基本上是在尝试将几个实例的状态保存为“Brick”类,所以我实现了一个像这样的 getBlueprint 方法(精简版)
所以我有另一种方法,可以在提供蓝图时创建一个新的 Brick 实例。
当我将“新”蓝图传递给它时,它会起作用,但当我从保存的文件中读取蓝图时则不起作用......有点。例如,旋转会起作用,但改变颜色不会。所以虽然我可以使用
如果我尝试类似
而且我知道颜色是紫色,条件不会返回 true。我认为可能是 NSKeyedUnarchiver 以某种方式将字符串更改为其他内容,但以下测试返回 true。
正如我所说,如果我尝试使用新创建的 NSDictionary 作为蓝图,这不是问题,只有当蓝图被存档然后重新读入时。
所以,像往常一样,我想知道是否有人知道为什么会发生这种情况。
如果它是相关的,这里是数据的存储和接收方式。
对不起一个问题的混乱。发生了很多事情,我正在努力完全了解自己,因此很难将其分解到最低限度。
cocoa - 可以可靠地打开和编辑 NSKeyedArchiver 的存档吗?
我正在使用类似下面的代码将对象的 NSDictionary 保存到设备。有没有办法打开这个档案,深入到它包含的字典项目,并在理想情况下编辑数据?我的猜测是不,不可靠,因为保存时完成的优化使存档难以解释......至少在使用Property List Editor之类的东西打开时看起来是这样。例如,如果我的一些对象共享一个类似的 NSString,那么 NSString 似乎只归档一次......改变了我所期望的 NSDictionary 的结构。