什么是NSAssert1?

我正在iOS上开发一个应用程序。 我看到有一个名为NSAssert1的macros。 这是为了什么? NSLogNSAssert1之间的用法有什么区别?

请指导我或build议一个教程,我可以阅读有关它。

这里有一篇文章: 实际上NSAssert有什么意义?

NSAssert变体需要一个条件和一条消息。 如果条件不符合/ true,则断言失败,并且NSAssert引发提供的消息的exception。 例如, NSAssert((a == b), @"Error message");a不等于b时会引起exception。 NSAssert1是一个变体,它接受一个额外的参数并将其插入到提供的格式string中,如下所示: NSAssert1((a == b), @"Error message: %@", someErrorString);

NSLog只会写一些东西给控制台。

所有这些macros的文档都在Apple的开发者网站上 。

NSAssertNSParameterAssertNSAssert1和朋友都是断言macros。 断言是条件检查,当某些事情不正确时尖叫:

 - (void) doSomethingWithPointer: (Foo*) foo { NSAssert(foo != NULL, @"The Foo pointer must not be NULL!"); foo->something; } 

有关更多信息,请参阅Stack Overflow上的标记为“断言”的问题 。