如何检查变量的NSAssert是(null)?

3 iphone cocoa-touch uikit

控制台打印我(null)为一个不应该的变量,所以我想在那里放一个断言只是为了好玩:

NSAssert(myVar, @"myVar was (null)!");
Run Code Online (Sandbox Code Playgroud)

这里的诀窍是什么?这个(null)的东西似乎不是"零",对吧?我该如何检查?我想假设var设置正确而不是nil,而不是null.

Bar*_*ark 5

假设myVar是类型id(或任何对象类型),请使用

NSAssert(myVar != nil, @"")
Run Code Online (Sandbox Code Playgroud)

如果断言通过,您应该能够打印myVar到控制台

NSLog(@"myVar = %@", myVar);
Run Code Online (Sandbox Code Playgroud)

作为边注,nil==null,(都是#defined作为__DARWIN_NULL其是#defined ((void *)0)).如果您尝试使用NSLog打印-description一个的nil(或NULL)对象引用您获得"(空)"