Что есть NSParameterAssert
?
Кто-нибудь может объяснить на примере?
источник
Что есть NSParameterAssert
?
Кто-нибудь может объяснить на примере?
Это простой способ проверить, что параметр метода не равен нулю nil
или не равен нулю. По сути, вы используете его для создания предварительного условия, заявляя, что какой-то параметр должен быть установлен. Если он не установлен, макрос вызывает прерывание приложения и генерирует ошибку в этой строке. Так:
- (void)someMethod:(id)someObjectThatMustNotBeNil
{
// Make sure that someObjectThatMustNotBeNil is really not nil
NSParameterAssert( someObjectThatMustNotBeNil );
// Okay, now do things
}
Предварительные условия - это простой способ убедиться, что методы / API вызываются программистом правильно. Идея состоит в том, что если программист нарушает предварительное условие, приложение завершает работу раньше времени - надеюсь, во время отладки и базового тестирования.
NSParameterAssert
Однако можно использовать для проверки того, что любое выражение оценивается как истинное, поэтому вы также можете использовать его следующим образом:
NSParameterAssert( index >= 0 ); // ensure no negative index is supplied
Release
конфигурации. Вы можете управлять этим, установив параметрыENABLE_NS_ASSERTIONS
сборки в более новых версиях Xcode или определивNS_BLOCK_ASSERTIONS
макрос и установив для него значение 1. В Xcode 5 есть параметр проекта * Enable Foundation Assertions`, который устанавливает параметр сборки и по умолчанию принимает значенияYes
inDebug
иNo
in.Release
конфигурации.