怎么判断nsnull

nslog出来是 <null>
尝试用==NULL iskindclass [nsnull class]
判断都失败了。到底应该咋判断呢

阅读 6.1k
1 个回答

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]造出来的。如果是的话就不可能失败。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题