什么是NSParameterAssert?

时间:2010-03-26 05:19:23

标签: iphone objective-c

什么是NSParameterAssert

任何人都可以用例子来解释吗?

1 个答案:

答案 0 :(得分:114)

这是一种测试方法参数不是nil或不是0的简单方法。所以基本上,你用它来创建一个前置条件,声明必须设置一些参数。如果未设置,则宏会导致应用程序中止并在该行上生成错误。所以:

- (void)someMethod:(id)someObjectThatMustNotBeNil
{
  // Make sure that someObjectThatMustNotBeNil is really not nil
  NSParameterAssert( someObjectThatMustNotBeNil );
  // Okay, now do things
}

前置条件是确保程序员正确调用方法/ API的简单方法。这个想法是,如果程序员违反了前提条件,应用程序会提前终止 - 希望在调试和基本测试期间。

NSParameterAssert可用于测试任何表达式的计算结果为true,因此您也可以像这样使用它:

NSParameterAssert( index >= 0 ); // ensure no negative index is supplied

Apple's documentation for the NSParameterAssert() macro