关于iphone:什么是NSParameterAssert?

What is NSParameterAssert?

什么是NSParameterAssert

有人能举例说明吗?


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

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

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

但是,可以使用NSParameterAssert来测试任何表达式的计算结果是否为真,因此您也可以这样使用它:

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

Apple的nsParameterAssert()宏文档