【发布时间】:2012-11-21 20:13:42
【问题描述】:
我有一个字符串
NSString hi;
我不知道什么值会被初始化。可以是 nil,可以是空字符串,可以是任何东西。
使用有什么好处
if (![hi length])
对
if (![hi isEqualToString:@""])
似乎两种情况都为空字符串、nil 和任何其他类型的字符串返回相同的值。我猜长度更好,因为它更有效。它只是返回一个变量,其中 isEqualToString 必须进行比较。
【问题讨论】:
-
顺便说一句,你的逻辑是有缺陷的。
![hi length]做了类似于[hi isEqualToString:@""]的事情,而不是![hi isEqualToString:@""]。 -
您可能并不打算这样做,但您的陈述恰恰相反。 ![hi length] 当 hi 为 nil 或空时为真,当 hi != "" 时![hi isEqualToString:@""] 为真。否定逻辑通常更令人困惑......
-
@pdriegen 我刚刚告诉过这个。另外,
NSString hi;不会编译。 -
@H2CO3 是的,我发帖后才看到..
-
谢谢,我没有想通这个问题。 [嗨长度] 是我正在寻找的。span>
标签: objective-c syntax compare string