为什么这些字符串不相等?

时间:2011-12-14 14:09:56

标签: objective-c ios5

 NSLog(@"%@",variable);
 temp = @"(null)";
 if([variable  isEqualToString:temp])

这是我使用的代码和输出

  

[4298:207](null)

但当然由于某些原因他们并不平等。我不能理解这一点。 两个变量都是NSString类型。

2 个答案:

答案 0 :(得分:9)

(null)只是%@格式说明符在值nil时给出的输出。 variable中的内容是nil,而不是文字字符串(null)

答案 1 :(得分:0)

你不理解的原因是因为你混合了两件不相同的东西。然而,当我们使用书面语言并描述这两件事时,它们在纸上/屏幕上看起来是相同的......至少对你而言。

首先,您必须了解说明/ 标签含义之间的区别。

如果我写NULL ...你看到的是一个描述。它描述/代表/意味着什么? NULL意味着什么。然而,当你编写代码时,你不会写变量=什么都没有。你写变量= NULL。 标签 - 意思 空 - 没什么

当你写temp = @“null”时..你说临时变量的值是4个字符的字符串,这是四个-n u l l 标签 - 意思 @“null” - 一个包含4个字符的字符串(n u l l)

然后你比较含义/值。,而不是descritions。显然..没有什么不等于有4个字符的字符串。