检查空值

4

可能是重复问题:
Objective-C中的! vs == nil

在Objective C中,以下两个条件语句有什么区别吗?

NSObject *obj; if(!obj) { ... }

和:

NSObject *obj; if(obj == nil) { ... }

谢谢!只是好奇,觉得了解这个是件好事。


3
没区别,这是C语言的行为。 - Mikhail Grebionkin
...以及补充问题 - albertamg
2个回答

2

这两种形式之间没有区别。


-1

!objobj=NULLobj=@"" 或空数组等情况下也是有效的。你懂的。

也就是说,!obj 更全面,因为你似乎在使用 NSObject 而不是任何特定的对象类型。


3
obj@""或空数组时,!obj真("valid"?)。此外,使用nil来表示空对象引用是传统的方式,而不是NULL - Marcelo Cantos
3
obj=@"" 或者是一个空的 NSArray 对象时,!obj 成立的。 @"" 是指向长度为 0NSString 对象的指针。这个指针在编译时就被分配了,因此它永远不会为 NULL(或 nil)。 - user142019
想要删除这个!我猜那是不可能的... - Srikar Appalaraju

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接