如何将NSArray转换为目标c中的NSString?
问题描述:
我有一些创建字符串的java服务器端代码(例如Hello world
),然后将此字符串转换为字节数组,最后发送给iOs客户端。如何将NSArray转换为目标c中的NSString?
我的iOs客户端使用NSStream
来读取数据并获取数组。 现在我想从数组中获取原始字符串。
我该怎么做?
我试图将数组转换为NSData
,然后到NSString
,但它失败。 我也尝试将数组转换为字符串,但它似乎将数组中的数字转换为字符串数字而不是我期望的字符串'Hello world'。
答
您应该将您的JSON更改为这样:{"type":"PONG","content":"478773035"]}
。
然而,这样的事情可能会工作:
uint8_t * const buffer = (uint8_t*)calloc(1, [ bytes count ] + 1)
assert(buffer) ;
size_t index = 0 ;
for (NSNumber * byteNumber in bytes)
{
buffer[ index ] = (uint8_t)[ byteNumber unsignedCharValue ] ;
++index;
}
NSString * const string = [ NSString stringWithUTF8String:buffer ];
free((void*)buffer);
什么是数据样子的?请发布您已经尝试过的代码。 – ZeMoon
'我的ios客户端使用NSStream来读取数据,并获得数组,如果您发布字节,您应该得到'NSData'。 –
服务器响应pong消息json格式:{“type”:“PONG”,“content”:[52,55,56,55,55,51,48,51,53]},当然这个json会转换为字节数组发送到ios客户端。使用代码:uint8_t dataArr [len]; [_inputStream read:dataArr maxLength:len]; NSData * data = [NSData dataWithBytes:dataArr length:len];获取数据,并使用json serialize来获取类型是'PONG',而内容是一个数组。现在我想将数组转换为一个字符串。 – fcbflying