方法Swizzle encodeWithCoder / initWithCoder

时间:2012-05-24 09:00:39

标签: iphone objective-c ios

我们正在开发一款能够将大量内容存入Core Data的应用程序。它保存的内容主要是NSDate NSNumber& NSString但它还会将许多图片和视频保存为NSData。我正在尝试更改它,以便将这些文件保存到本地存储中,并将文件名保存在核心数据中,然后我们只需从本地存储中加载它,希望在访问核心数据时节省时间并使其成为有点稳定。

在讨论之后,我们认为覆盖encodeWithCoder和initWithCoder是最容易的,这样我们就可以截取调用以保存数据并将它们保存在文件系统上。然后我发现NSData实际上是类集群的一部分,因此覆盖函数比看起来更难。

然后我读到了关于方法调配的地方,你可以将一个实现换成另一个实现。我用Google搜索并找到this,并在Stack Overflow上发现了一篇关于使用该文章的文章,但它并没有真正帮助我,我仍然不知道如何做我需要的事情。

有人能指出我正确的方向,还是给我一些关于如何做到这一点的指示?

谢谢,

1 个答案:

答案 0 :(得分:2)

不要让方法混淆这些 - 相信我:)

如果你想按照描述保存,请将该实现放在类的归档方法实现中(不是子类,不是swizzle,而是包含这些对象的类)。