我有一个NSString
,firstWord
,它的值为“第一”。它的定义是这样的:问题比较NSString文字和常数
NSString *firstWord = [[NSString alloc] init];
firstWord = [textView text];
然而,当我尝试检查它的价值,就像这样:
if (firstWord == @"First"){}
比较没有返回true,或者是我想在Objective-C。我知道它具有与字符串相同的值。所以,从this我很确定问题是我比较指针,这里不一样,即使字符串本身具有相同的值。那么我怎样才能直接比较字符串本身呢?或者更有效率,确保两个字符串对象做具有相同的指针,所以我不必做相对昂贵的字符串比较?
实际上,如果'firstWord'是'nil',则表达式将为真,因为消息的计算结果为0,与'NSOrderedSame'的值相同。 – 2012-07-09 06:29:01
这通常不是你想要的;在大多数情况下,开发人员将一个零字符串视为“不等于”某个实际字符串。 – 2012-07-09 06:35:12
Right;所以你会看到一个'nil'字符串,它似乎等于一些非'nil'字符串。因此,使用'isEqualToString:'。 – 2012-07-09 06:37:16