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