Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c NSAssert没有';行不通_Objective C_Assert_Nsassert - Fatal编程技术网

Objective c NSAssert没有';行不通

Objective c NSAssert没有';行不通,objective-c,assert,nsassert,Objective C,Assert,Nsassert,我试图在我的代码中使用NSAssert,但它没有任何作用 在这段代码中,断言应该失败,但不会: MSLog(@"cross.obj = %@",[cross obj]); NSAssert([cross obj]!=nil,@"[cross obj] == nil"); 其输出为: cross.obj=(空) 可能是什么问题?原因可能是[cross obj]的结果是[NSNull null],而不是零 输出可能是,这并不意味着NULL或nil而是NSNull单例对象。此对象用作

我试图在我的代码中使用
NSAssert
,但它没有任何作用

在这段代码中,断言应该失败,但不会:

    MSLog(@"cross.obj = %@",[cross obj]);
    NSAssert([cross obj]!=nil,@"[cross obj] == nil");
其输出为:

cross.obj=(空)


可能是什么问题?

原因可能是
[cross obj]
的结果是
[NSNull null]
,而不是

输出可能是
,这并不意味着
NULL
nil
而是
NSNull
单例对象。此对象用作占位符,其中
nil
不是选项(例如在
NSArray
s中)


另一个原因可能是定义了
NS_BLOCK_断言
预处理器宏,该宏禁用
NSAssert
NS_BLOCK_断言
阻止断言运行。尝试删除定义。

这背后的原因是
nil
null
值之间存在差异

所以,请用其他例子来检验一下


它会起作用。

由于某种原因,设置了
NS\u BLOCK\u断言。
[cross obj]=nil
计算为
FALSE
nil和NULL是相同的值。相反,[NSNull]是具有非nil值的对象。