【发布时间】:2016-05-14 02:26:04
【问题描述】:
下面的代码可以处理我的服务器使用套接字发送的响应:
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,而不是没有len: 184 的Receive: ~,正如我们在上面的命令中第二次调用NSLog 中看到的那样.
我该如何解决这个问题?
【问题讨论】:
标签: objective-c nsstring nslog nsstream nsmutablestring