在XCTest(以及后来正常运行期间)的断点处,我遇到了一些......奇怪的事情。我认为下面的截图解释了我的问题:
为什么声明An Objective-C constant string's string initializer is not an array
?看起来它似乎试图将我的@""
NSString
字面糖翻译成NSString
初始化程序 - with-C-string不成功,但为什么?
另外,我已经使用¢
字符或其Unicode转义序列测试了许多其他字符串,它们都具有相同的结果。
答案 0 :(得分:2)
这看起来像个错误。请用http://bugreporter.apple.com提交。
静态字符串构造涉及一些编译器魔法,显然lldb在字符串包含高位字符时没有正确。您可以使用NSString构造函数之一在表达式解析器中实现相同的效果:
(lldb) expr NSString *$newstr = [NSString stringWithUTF8String: "Something¢"]
(lldb) expr $newstr
(__NSCFString *) $newstr = 0x00000001007000a0 @"Something¢"
然后你可以在将来的表达式中使用$ newstr。
答案 1 :(得分:1)
必须是LLDB表达式解析器的错误。甚至调试器都有错误..
您可以查看llvm IRForTarget使用的ClangExpressionParser中的错误。