我使用的是double []而不是NSArray。有谁知道如何对其进行编码以进行存档
答案 0 :(得分:1)
有两种选择:
NSArray
个NSNumber
个对象。NSValue
或NSData
对象。答案 1 :(得分: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 double数组中。由于返回的数组是常量,我假设解码器拥有该数组,并在释放解码器时释放它。
这不像将数组放入NSData对象并对其进行存档那样方便,但它确实避免了创建临时对象的开销。