尝试与字符串进行比较:
BOOL r = [res isEqualToString:[@"\x124Vx\xc3\xaa"]];
但是我得到了
错误:十六进制转义序列超出范围
我也尝试过类似的东西:
NSString *s = [@"\x12" stringByAppendingString: @"4Vx\xc3\xaa"];
BOOL r = [res isEqualToString:s];
Run Code Online (Sandbox Code Playgroud)
现在它可以工作并返回 YES
如何指定这样的字符串并避免先将它们拆分?有点烦...
更新:我使用@rmaddy 的代码,它现在可以工作,但是,如果我将它放在数组中,例如:
NSArray *answers = @[
@"",
@"#",
@"\x12""4Vx\xc3\xaa",
]
Run Code Online (Sandbox Code Playgroud)
它将为最后一个字符串文字生成警告:
NSArray 表达式的串联 NSString 文字 - 可能缺少逗号 如何摆脱它?
使用
NSString *s = @"\x12""4Vx\xc3\xaa";
NSArray *arr = @[s];
Run Code Online (Sandbox Code Playgroud)
可以工作,但我不想写更多的 NSString *s ... 来做到这一点。
问题在于:
BOOL r = [res isEqualToString:@"\x124Vx\xc3\xaa"];
Run Code Online (Sandbox Code Playgroud)
是与\x124部分。似乎您只能在00-范围内使用十六进制值ff。并注意去除[ ]周围的字符串。
如果您不想4将 视为\x十六进制数的一部分,则可以执行以下操作:
BOOL r = [res isEqualToString:@"\x12""4Vx\xc3\xaa"];
Run Code Online (Sandbox Code Playgroud)
两个双引号字符确保\x转义序列在您需要的地方停止。
要在 中使用此类字符串时消除有关可能缺少逗号的新警告NSArray,您需要使用旧语法来创建数组:
NSArray *answers = [NSArray arrayWithObjects:
@"",
@"#",
@"\x12""4Vx\xc3\xaa",
nil
];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6194 次 |
| 最近记录: |