NSString比较在Objective-C中不起作用

时间:2015-10-23 20:07:39

标签: objective-c nsstring

我的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>

1 个答案:

答案 0 :(得分:1)

你的text有一些尾随的NUL。你可以修剪它们:

text = [text stringByTrimmingCharactersInSet:
    [NSCharacterSet characterSetWithRange:NSMakeRange(0, 1)]];