【问题标题】:Parsing char* to NSString stops at first new line in Objective-C将 char* 解析为 NSString 在 Objective-C 的第一个新行处停止
【发布时间】:2017-08-29 16:56:49
【问题描述】:

我正在尝试将从库返回的字符串转换为 NSString 以与单独的 Objective-C API 一起使用,但是每当我将 char* 解析为 NSString 时,它似乎停止在第一行.

示例:

char *tst = "POST /servers HTTP/1.0\r\nContent-Type: test/json\r\nContent-Length:10\r\n\r\n1234567890";
NSLog(@"(TEST) : TST = %@", [NSString stringWithUTF8String:tst]);

输出:

<Notice>: (TEST) : TST = POST /servers HTTP/1.0

我不确定这是否实际上没有解析超过第一个换行符,或者 NSLog 只是没有显示超过第一个换行符的字符串的其余部分。这就是我想要弄清楚的。


编辑:


我也尝试过只用\n 替换\r\n 实例,没有任何变化。

示例:

char *tst = "POST /servers HTTP/1.0\r\nContent-Type: test/json\r\nContent-Length:10\r\n\r\n1234567890";
NSString *tstStr = [NSString stringWithUTF8String:tst];
NSLog(@"(TEST) : TST = %@", [tstStr stringByReplacingOccurrencesOfString:@"\r\n" withString:@"\n"]);

输出:

<Notice>: (TEST) : TST = POST /servers HTTP/1.0

【问题讨论】:

  • 您的代码运行良好。它显示了接下来的三行日志。

标签: ios objective-c nsstring


【解决方案1】:

您的代码应该可以工作。在查看 Xcode 中的调试日志时,我刚刚尝试过,它对我有用。

请注意,您实际上会在NSLog 输出中获得两行新行,一行用于\r,另一行用于\n

【讨论】:

  • 原来的问题是我对日志进行 grep 的方式丢失了剩余的行。我现在觉得自己很愚蠢。
猜你喜欢
  • 2012-02-12
  • 1970-01-01
  • 2012-07-16
  • 1970-01-01
  • 1970-01-01
  • 2011-07-05
  • 2023-03-11
  • 2011-10-04
  • 1970-01-01
相关资源
最近更新 更多