正如 @Lion 在他的评论中所描述的,最简单的方法是使用 printf 代替。它的工作方式与 NSLog 不完全相同,但它显示了您想要的内容。
NSDictionary *allProducts = responseFromAPI;
NSString * string = [NSString stringWithFormat: @"%@", allProducts];
printf("%s", [string UTF8String]);
或更短:
NSDictionary *allProducts = responseFromAPI;
printf("%s", [NSString stringWithFormat: @"%@", allProducts].UTF8String);
提示是在 printf 格式的开头或结尾放置一个“\n”,这样它将分隔输出,而不是将所有输出放在一行中。像这样的事情:
printf("%s\n", string.UTF8String);
如果您不喜欢每次都编写 printf,则可以使用 #define 将代码重定向到 printf,如下所示(代码来自 @xfdai):
#define NSLog(FORMAT, ...) printf("%s\n", [[NSString stringWithFormat:FORMAT, ##__VA_ARGS__] UTF8String]);
希望这只是苹果的一个错误,很快就会得到修复,在那之前我们就可以使用它了。