首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSAssert对NSCAssert

NSAssert对NSCAssert
EN

Stack Overflow用户
提问于 2014-02-14 12:55:14
回答 4查看 4.1K关注 0票数 7

NSAssertNSCAssert有什么区别?当我探索它们的实现时,它们看起来非常相似,我无法找到对我的问题的答案。

我猜这也将解释NSParameterAssertNSCParameterAssert之间的区别。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-02-14 12:58:16

第二种是C和Objective断言之间的区别: NSAssert只应该在Objective上下文中使用(即方法实现),而NSCAssert只应该在C上下文(即函数)中使用。

更多信息来自http://nshipster.com/nsassertionhandler/

票数 13
EN

Stack Overflow用户

发布于 2014-05-31 15:59:50

请注意,在块中使用NSAssert/NSParameterAssert可能会导致保留周期。使用C变体代替。谷歌NSAssert保留周期

票数 6
EN

Stack Overflow用户

发布于 2014-02-14 12:58:39

这摘自NSHipster,请参阅链接

基金会定义了两对断言宏: NSAssert/NSCAssert NSParameterAssert/NSCParameterAssert Foundation在它们的断言处理程序API中做了两个语义和功能的区别。第一个区别是一般断言(NSAssert)和参数断言(NSParameterAssert)之间的区别。经验法则是,方法/函数应该在方法顶部使用NSParameterAssert/NSCParameterAssert语句来强制执行有关输入值的任何先决条件;在所有其他情况下,使用NSAssert/NSCAssert。 第二种是C和Objective断言之间的区别:NSAssert只应该在Objective上下文中使用(即方法实现),而NSCAssert只应该在C上下文(即函数)中使用。

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

https://stackoverflow.com/questions/21780014

复制
相关文章

相似问题

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