Ios 断点条件中的错误

Ios 断点条件中的错误,ios,objective-c,xcode,breakpoints,lldb,Ios,Objective C,Xcode,Breakpoints,Lldb,我已经用条件设置了一个断点 [event.name isEqualToString:@"Some Name"] [part.name isEqualToString:@"Some Value With A Pound Sign £"] 这个很好用 但是,当我尝试使用条件添加另一个断点时 [event.name isEqualToString:@"Some Name"] [part.name isEqualToString:@"Some Value With A Pound Sign £"]

我已经用条件设置了一个断点

[event.name isEqualToString:@"Some Name"]
[part.name isEqualToString:@"Some Value With A Pound Sign £"]
这个很好用

但是,当我尝试使用条件添加另一个断点时

[event.name isEqualToString:@"Some Name"]
[part.name isEqualToString:@"Some Value With A Pound Sign £"]
我得到了错误

Internal error [IRForTarget]: An Objective-C constant string's string initializer is not an array
Stopped due to an error evaluating condition of breakpoint

我需要转义井号还是什么?

我不知道为什么断点的编译器支持仍然如此有限,但无论如何,要解决您的问题,您调用的每个方法的返回类型如下所示就足够了:

(BOOL)[(NSString *)[part name] isEqualToString:@"some string"]

如果字符串不包含“£”符号或任何其他非ASCII字符,则代码应暂停。由于LLDB编译器似乎存在非ASCII字符问题,您可能希望首先使用该编码转换字符串。与此同时,我正在寻找一种方法来避免这种情况,如果可能的话…

表达式解析器和包含非ASCII字符的NSString文本存在一个错误

(lldb) po @"u"
$9 = 0x00007fff7debe5e0 u
(lldb) po @"ü"
Internal error [IRForTarget]: An Objective-C constant string's string initializer is not an array
error: warning: expression result unused
error: The expression could not be prepared to run in the target
已经有一个关于此问题的错误报告存档

正确处理非ASCII C字符串文字,因此可以解决此问题,例如

(lldb) po [NSString stringWithUTF8String:"ü"]
$11 = 0x000000010010b040 ü

如果我删除%s,则不会产生错误。。。但它也不会暂停。请尝试
[part.name rangeOfString:@“带磅号的某个值]。位置!=NSNotFound
除非您专门查找磅符号,否则您必须使用不同的编码查找字符串。这看起来像是LLDB中的一个错误(编码问题),您应该向Apple报告。@Putz1103我尝试过,但得到了<代码>由于评估断点12.1的条件时出错而停止:“[part.name rangeOfString:@“Search String”]。location!=NSNotFound;”错误:“rangeOfString:”具有未知的返回类型;将调用转换为声明的返回类型error:1 errors解析表达式@Fogmeister我尝试了同样的方法,并在该行上放置了一个断点作为u,但我没有发现任何此类错误。我的代码:if([self.strCheck isEqualToString:@“带磅号的某个值”]){NSLog(@“get”);}else{NSLog(@“not”);}如果“某个字符串”包含非ASCII字符,则会出现问题。转换到
NSString*
对我的测试用例没有帮助。不,对我也没有帮助。对不起,哦,是的,我注意到了。至少当没有非ASCII字符时,他的代码应该暂停。让我们试着找到一个解决方案!太神了这解决了我的条件断点问题!