encodeObject:encodeInt:编码器不知道类型吗?

时间:2012-03-31 13:43:00

标签: objective-c ios

刚开始使用NSCoder + NSKeyedArchiver(我是Objective C的初学者)。

想知道为什么我们必须在编码(encodeObject: encodeInt:等)时指定数据类型,因为已经为所有变量定义了类型。数据类型只是编译器时间辅助的东西,以防止在运行时可能发生的类型不匹配?它是否用于速度,因此编码器不必检查类型?

简单的问题,但我想知道更多关于幕后发生的事情。

1 个答案:

答案 0 :(得分:0)

如果您注意到,只列出了基元。您不能将原语写入编码器,因此在存储它们之前有方便的方法将它们转换为实际对象(反之亦然)。例如,encodeInt会将int转换为NSNumber对象。否则你每次都必须自己做;)。