首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSAssert不起作用

NSAssert不起作用
EN

Stack Overflow用户
提问于 2011-05-31 16:50:35
回答 3查看 1.6K关注 0票数 2

我试图在我的代码中使用NSAssert,但它什么也不做。

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

代码语言:javascript
复制
    MSLog(@"cross.obj = %@",[cross obj]);
    NSAssert([cross obj]!=nil,@"[cross obj] == nil");

这方面的产出如下:

cross.obj = (null)

,有什么问题吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-05-31 17:08:01

NS_BLOCK_ASSERTIONS阻止断言的正常工作。尝试删除定义。

票数 3
EN

Stack Overflow用户

发布于 2012-10-17 14:06:02

这背后的原因是nilnull值之间有区别。

所以请和其他例子核对一下。

看起来不错。

票数 1
EN

Stack Overflow用户

发布于 2011-05-31 17:00:07

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

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

另一个原因可能是定义了NS_BLOCK_ASSERTIONS预处理器宏,从而禁用NSAssert

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6190863

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档