NSKeyedUnarchiver 无法处理在不同应用程序中创建的文件

NSKeyedUnarchiver not working with file made in different app

我有两个共享绘图 canvas 的应用程序,我们称其中一个为 "child",另一个为 "parent"。

他们都对自己的绘图进行编码并将其上传到 Parse。 当他们共享同一张图时,实际上是他们各自的图重叠在一起。

我遇到的问题是他们无法解码其他人的绘图。他们能够自己解码,并且他们使用完全相同的 class 结构来绘制 canvas 和 encoding/decoding 过程。

虽然这是两个独立的应用程序(因为它们的构建方式不同)- 是否有可能将有关应用程序 ID 的内容编码到 NSData 文件中?

我猜,由于您使用的是 swift,程序包名称被编码到 class 名称中,因此被编码到流存档中。确保所有 classes 都使用 @objc 声明(这将击败 class 名称修改)并查看是否有效。