0

你如何使用 NSCoding 来编码(和解码)一个由十个原始类型值组成的数组int?单独编码每个整数(在 for 循环中)。但是如果我的数组包含一百万个整数呢?有没有比在这里使用 for 循环更令人满意的选择?

编辑(在第一个答案之后):然后解码?(@贾斯汀:然后我会勾选你的答案。)

4

1 回答 1

2

如果性能是您关心的问题:CFData/NSData 符合 NSCoding,因此只需将数组的序列化表示形式包装为 NSCFData。

编辑详细编码/解码:

您的整数数组需要转换为通用的字节序格式(取决于机器的字节序) - 例如,始终将其存储为小字节序或大字节序。在编码期间,将其转换为指定字节序的整数数组,并传递给 NSData 对象。然后将 NSData 表示传递给 NSCoder 实例。在解码时,您将收到一个 NSData 对象作为密钥,您在解码时有条件地将其转换为机器的本机字节序。一组可用于 OS X 和 iOS 的字节交换例程以OSSwap*.

或者,请参阅-[NSCoder encodeBytes:voidPtr length:numBytes forKey:key]。此例程还要求客户端交换字节顺序。

于 2010-10-04T22:22:43.980 回答