【问题标题】:NSString not showing all characters in NSLogNSString 未显示 NSLog 中的所有字符
【发布时间】:2017-07-06 16:09:01
【问题描述】:

我通过以下方式将 std::string 转换为 NSString*:

NSString *BufferString = [[NSString alloc] initWithCString:allBufferString.c_str()
                                                    encoding:[NSString defaultCStringEncoding]];

代码cout<<allBufferString; 显示Log 中的整个字符串。 但是NSLog(@"%@ ",BufferString) 并没有显示所有数据,而是以 0.061523 -0.03<...> 在日志中。

那么两个问题:

  1. 如果我将 NSString 作为 JSON 字符串发送。所有数据都在那里吗?

  2. 如何打印 NSLog 中的所有数据?

【问题讨论】:

  • 1.将日志添加到您的 Q 中,如果它们太长,请在中间缩短它。 2.[bufferString length]的结果是什么?没关系? 3. 如果您发送数据会发生什么?你试过了吗?如果不是,为什么? 4. 为什么要记录所有数据? NSLog() 不是打印服务,而是日志服务。 5.po bufferString 有什么用? 6. 尊重 Objective-C 的命名规则。
  • 是的。由于 NSLog 问题,我浪费了一个星期。 NSLog 现在被 XCode 截断了,天知道为什么。 NSLog 不再可靠地调试长数据。因此,人们正在制作自定义日志记录功能。谢谢苹果。
  • @Amin Negm - 它显示为<decode: missing data>
  • @GeneCode 我知道,我知道:NSLog() 不是调试工具。
  • @AminNegm-Awad 有趣的是,您说因为在 Apple Technical Note 本身中,他们将 NSLog 列为调试工具之一。 developer.apple.com/library/content/technotes/tn2347/…

标签: objective-c string nsstring


【解决方案1】:

这是 Xcode 错误(或功能)。你可以像post一样打印日志

#define NSLog(FORMAT, ...) printf("%s\n", [[NSString stringWithFormat:FORMAT, ##__VA_ARGS__] UTF8String]);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多