谁能告诉我如何将NSArray
转换为NSData
?我有一台NSArray
。我需要把它发送给NSInputStream
。为此,我需要将NSArray
转换为NSData
。
请帮帮我,我被困在这里了。
发布于 2009-08-17 05:20:05
使用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格式常量,如果您希望它在网络上是可读的,您可以传递它。
发布于 2011-02-24 00:34:14
在一些相关的注释中,下面是如何将NSData转换回NSArray的方法:
NSArray *array = [NSKeyedUnarchiver unarchiveObjectWithData:data]
发布于 2016-01-07 21:54:00
我用了这段代码。
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];
https://stackoverflow.com/questions/1286212
复制相似问题