gpt4 book ai didi

objective-c - 错误 : hex escape sequence out of range

转载 作者:行者123 更新时间:2023-12-04 12:49:40 28 4
gpt4 key购买 nike

尝试与字符串进行比较:BOOL r = [res isEqualToString:[@"\x124Vx\xc3\xaa"]];
但是我得到了

error: hex escape sequence out of range



我也尝试过类似的东西:
NSString *s = [@"\x12" stringByAppendingString: @"4Vx\xc3\xaa"];
BOOL r = [res isEqualToString:s];

现在它可以工作并返回 YES
如何指定这样的字符串并避免先将它们拆分?有点烦...

更新:
我使用@rmaddy 的代码,它现在可以工作,但是,如果我将它放在数组中,例如:
NSArray *answers = @[
@"",
@"#",
@"\x12""4Vx\xc3\xaa",
]

它将为最后一个字符串文字生成警告:

Concatenated NSString literal for an NSArray expression - possibly missing a comma How to get rid of it?



使用
NSString *s = @"\x12""4Vx\xc3\xaa";
NSArray *arr = @[s];

可以工作,但我不想写更多的 NSString *s ... 来做到这一点。

最佳答案

问题在于:

BOOL r = [res isEqualToString:@"\x124Vx\xc3\xaa"];

\x124部分。似乎您只能在 00 范围内使用十六进制值- ff .并注意删除 [ ]围绕字符串。

如果您不想要 4被视为 \x 的一部分十六进制数,你可以这样做:
BOOL r = [res isEqualToString:@"\x12""4Vx\xc3\xaa"];

两个双引号字符确保 \x转义序列在您需要的地方停止。

消除在 NSArray 中使用此类字符串时可能丢失逗号的新警告,您将需要使用旧语法来创建数组:
NSArray *answers = [NSArray arrayWithObjects:
@"",
@"#",
@"\x12""4Vx\xc3\xaa",
nil
];

关于objective-c - 错误 : hex escape sequence out of range,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40857233/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com