NSNull是单例,最简单的判断方法 if (value == [NSNull null]) 就行。另外 if ([[NSNull null] isEqual:value]) 和你说的 if ([value isKindOfClass:NSNull.class]) 都是可以的。而== NULL是不可以的,因为NULL代表0(也就是nil),表示空指针,而[NSNull null]并不是空指针,它是指向一块内存的,只是从含义上表示值的缺失。 至于你判断isKindOfClass为什么会失败,看下这个 nsnull 是怎么造出来的,是否是[NSNull null]造出来的。如果是的话就不可能失败。
NSNull
是单例,最简单的判断方法就行。另外
和你说的
都是可以的。而
== NULL
是不可以的,因为NULL
代表0(也就是nil
),表示空指针,而[NSNull null]
并不是空指针,它是指向一块内存的,只是从含义上表示值的缺失。至于你判断
isKindOfClass
为什么会失败,看下这个 nsnull 是怎么造出来的,是否是[NSNull null]
造出来的。如果是的话就不可能失败。