我使用的是 double[] 而不是 NSArray。有谁知道如何对其进行编码以进行存档
问问题
195 次
2 回答
1
想到两个选择:
- 将其转换
NSArray
为NSNumber
对象。 - 把它塞进一个
NSValue
或NSData
物体中。
于 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 回答