我的NSString
比较方法问题' isEqualToString:'。我有两个(匹配的)字符串,在执行hte YES
方法时不会以isEqualToString:
返回。
if
语句中的代码永远不会执行。我还尝试在\n
字符串中添加checkvalue
,以防文本字符串中存在隐藏的控制代码。在代码的底部是调试窗口中显示的变量。
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
}
以下是调试器窗口中显示的变量两个值,后跟NSLog语句中的字符串:
text=(…NSCFString *) @”OVERTEMP”
checkvalue=(…NSCFContstantString *) @”OVERTEMP”
NSLog output for text: <4f564552 54454d50 00000000 00>
NSLog output for checkvalue: <4f564552 54454d50>
答案 0 :(得分:1)
你的text
有一些尾随的NUL。你可以修剪它们:
text = [text stringByTrimmingCharactersInSet:
[NSCharacterSet characterSetWithRange:NSMakeRange(0, 1)]];