У меня есть этот код ниже, который обрабатывает ответ отправить на мой сервер с сокетами:NSLog показать странный характер вместо JSON
uint8_t buffer[4096];
int len;
NSMutableString *total = [[NSMutableString alloc] init];
while ([inputStream hasBytesAvailable]) {
len = (int)[inputStream read:buffer maxLength:sizeof(buffer)];
if (len > 0) {
NSLog(@"Buffer: %s",buffer);
[total appendString: [[NSString alloc] initWithBytes:buffer length:len encoding:NSASCIIStringEncoding]];
NSLog(@"Receive: %@, len: %d",total,len);
NSLog(@"len: %d, receive: %@",len,total);
}
}
Мой сервер отправить текстовый файл, как это:
[{"name_user":"stack overflow","user_key":"XXXXXXX","type":21}]
Проблема с этим кодом заключается в том, что если я отправлю этот JSON, журнал консоли отобразит длину этого JSON. Но если я посылаю этот JSON ниже:
[[{"name_user":"stack overflow","user_key":"XXXXXXX","type":21}],[{"name_user":"lacrifilm","user_key":"XXXXXXX","type":21}]]
Это представляет два значения в формате JSON В журнале консоли:
Buffer: ~
Receive: ~
len: 184, receive: ~
Я считаю, что проблема не в моем сервере, потому что если бы это был я бы получение: Receive: ~, len: 184
, вместо Receive: ~
без len: 184
, как мы видели во втором вызове NSLog
в моей команде выше.
Как я могу решить эту проблему?
Возможный дубликат [Почему не бросает работу из NSData в String? Swift] (http://stackoverflow.com/questions/36894972/why-doesnt-cast-work-from-nsdata-to-string-swift) – Larme