0

我正在设计一个对象持久代码。IMO,内存快照在一些限制内是最快、可靠和紧凑的持久方法。

使用 C 结构很容易。我可以手动布局所有对象的内存布局。我可以将所有引用保存为对象集合的索引。所以参考不是问题。

无论如何,我想用 Objective-C 对象来试试这个。为此,对象必须位于内存的特定位置。所以,如果我可以指定分配的内存位置,我可以对内存进行快照。并且在恢复时,我可以在特定地址获取对象。

当然,所有这些都是特定于机器的,需要很多技巧,但这对我来说很好。唯一的问题是我不知道如何指定新的 Objective-C 对象的位置。我怎样才能做到这一点?

4

1 回答 1

0

通常人们使用NSCodingNSKeyedArchiver(或其一些自定义子类)。我认为您的 C 方法在 64 位运行时之前可以工作,因为对象的数据部分是使用结构实现的,但我认为新运行时使用非脆弱实例变量会使事情复杂化。在任何情况下,加载持久对象的程序仍然必须有它们的类定义,要么是硬编码的,要么是通过包加载的。

于 2012-06-21T19:39:03.103 回答