NSAssert和NSCAssert有什么区别?当我探索它们的实现时,它们看起来非常相似,我无法找到对我的问题的答案。
我猜这也将解释NSParameterAssert和NSCParameterAssert之间的区别。
发布于 2014-02-14 12:58:16
第二种是C和Objective断言之间的区别: NSAssert只应该在Objective上下文中使用(即方法实现),而NSCAssert只应该在C上下文(即函数)中使用。
更多信息来自http://nshipster.com/nsassertionhandler/
发布于 2014-05-31 15:59:50
请注意,在块中使用NSAssert/NSParameterAssert可能会导致保留周期。使用C变体代替。谷歌NSAssert保留周期
发布于 2014-02-14 12:58:39
这摘自NSHipster,请参阅链接
基金会定义了两对断言宏:
NSAssert/NSCAssertNSParameterAssert/NSCParameterAssertFoundation在它们的断言处理程序API中做了两个语义和功能的区别。第一个区别是一般断言(NSAssert)和参数断言(NSParameterAssert)之间的区别。经验法则是,方法/函数应该在方法顶部使用NSParameterAssert/NSCParameterAssert语句来强制执行有关输入值的任何先决条件;在所有其他情况下,使用NSAssert/NSCAssert。 第二种是C和Objective断言之间的区别:NSAssert只应该在Objective上下文中使用(即方法实现),而NSCAssert只应该在C上下文(即函数)中使用。
https://stackoverflow.com/questions/21780014
复制相似问题