谁能告诉我如何将an转换NSArray
为an NSData
?我有一个NSArray
。我需要将其发送到NSInputStream
。为此,我需要将转换NSArray
为NSData
。
请帮助我,我被困在这里。
Answers:
使用NSKeyedArchiver(这是Garrett链接的最后一句话):
NSData *data = [NSKeyedArchiver archivedDataWithRootObject:array];
请注意,其中的所有对象array
必须符合NSCoding
协议。如果这些是自定义对象,则意味着您需要阅读Encoding and Decoding Objects。
请注意,这将创建一种相当难以理解的属性列表格式,但可以处理非常广泛的对象。如果您有一个非常简单的数组(例如字符串),则可能要使用NSPropertyListSerialization,它会创建一个更简单的属性列表:
NSString *error;
NSData *data = [NSPropertyListSerialization dataFromPropertyList:array format:NSPropertyListBinaryFormat_v1_0 errorDescription:&error];
如果您希望在线阅读它,还可以传递一个XML格式常量。
我用了这段代码。
NSError *error;
NSMutableData *jsonData = [[NSJSONSerialization dataWithJSONObject:yourDemoArray
options:0 // Pass 0 if you don't care about the readability of the generated string
error:&error] copy];