NSString 比较在 Objective-C 中不起作用
NSString comparison not working in Objective-C
我的 NSString
比较方法 'isEqualToString:' 有问题。我有两个(匹配的)字符串在执行 hte isEqualToString:
方法时不会作为 YES
返回。
if
语句中的代码永远不会执行。我还尝试将 \n
添加到 checkvalue
字符串,以防文本字符串中存在隐藏的控制代码。代码底部是调试中显示的变量 window.
NSString *text = [dict objectForKey:TEXT_STR];
NSLog(@"%@", [text dataUsingEncoding:NSUTF8StringEncoding]);
NSString *checkvalue = @”OVERTEMP”;
NSLog(@"%@", [checkvalue dataUsingEncoding:NSUTF8StringEncoding]);
if ( [text isEqualtoString:checkvalue] )
{
// ... execute this code when the strings are equal
}
这里是调试器 Window 中显示的变量两个值,后跟来自 NSLog 语句的字符串:
text=(…NSCFString *) @”OVERTEMP”
checkvalue=(…NSCFContstantString *) @”OVERTEMP”
NSLog output for text: <4f564552 54454d50 00000000 00>
NSLog output for checkvalue: <4f564552 54454d50>
您的 text
有一些尾随 NUL。你可以 trim 他们:
text = [text stringByTrimmingCharactersInSet:
[NSCharacterSet characterSetWithRange:NSMakeRange(0, 1)]];
我的 NSString
比较方法 'isEqualToString:' 有问题。我有两个(匹配的)字符串在执行 hte isEqualToString:
方法时不会作为 YES
返回。
if
语句中的代码永远不会执行。我还尝试将 \n
添加到 checkvalue
字符串,以防文本字符串中存在隐藏的控制代码。代码底部是调试中显示的变量 window.
NSString *text = [dict objectForKey:TEXT_STR];
NSLog(@"%@", [text dataUsingEncoding:NSUTF8StringEncoding]);
NSString *checkvalue = @”OVERTEMP”;
NSLog(@"%@", [checkvalue dataUsingEncoding:NSUTF8StringEncoding]);
if ( [text isEqualtoString:checkvalue] )
{
// ... execute this code when the strings are equal
}
这里是调试器 Window 中显示的变量两个值,后跟来自 NSLog 语句的字符串:
text=(…NSCFString *) @”OVERTEMP”
checkvalue=(…NSCFContstantString *) @”OVERTEMP”
NSLog output for text: <4f564552 54454d50 00000000 00>
NSLog output for checkvalue: <4f564552 54454d50>
您的 text
有一些尾随 NUL。你可以 trim 他们:
text = [text stringByTrimmingCharactersInSet:
[NSCharacterSet characterSetWithRange:NSMakeRange(0, 1)]];