2011-12-14 40 views
2
NSLog(@"%@",variable); 
temp = @"(null)"; 
if([variable isEqualToString:temp]) 

这是我使用的代码,并作为输出我得到为什么这些字符串不相等?

[4298:207](空)

过程中由于某种原因,但他们是不相等的。理解这一点超出了我的想象。 这两个变量都是NSString类型的。

回答

9

(null)只是%@格式说明符在输出值为nil时的输出。 variable中有什么是nil,不是字面意义的字符串(null)

+0

谢谢。已经解决了我的问题。我会尽快接受答案。 – Pillblast 2011-12-14 14:15:27

0

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

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

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

当你写TEMP = @“空“..你状态的临时变量字符串从4个字符的值,它是这四个-null 标签 - 这意味着 @ “null” - 包含4个字符的字符串(空)

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

相关问题