2

我使用的是 double[] 而不是 NSArray。有谁知道如何对其进行编码以进行存档

4

2 回答 2

1

想到两个选择:

  1. 将其转换NSArrayNSNumber对象。
  2. 把它塞进一个NSValueNSData物体中。
于 2010-03-31T01:27:44.077 回答
0

如果您没有在平台之间传输编码数据,您可能会遇到字节序和数据大小问题,您可以使用

- (void)encodeBytes:(const uint8_t*)bytesp length:(NSUInteger)lenv forKey:(NSString*)key;

直接存储字节,然后

- (const uint8_t*)decodeBytesForKey:(NSString*)key returnedLength:(NSUInteger*)lengthp;

解码它们。正如 NSCoder 头文件指出的那样,decodeBytesForKey:returnedLength: 方法返回不可变字节,因此您需要将返回的数组复制到 malloced 双数组中。由于返回的数组是常量,我假设解码器拥有该数组,并在解码器被释放时释放它。

这不像将数组放入 NSData 对象并存档那样方便,但它确实避免了创建临时对象的开销。

于 2011-10-11T18:49:43.583 回答