Что есть 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
in Debug
и No
in. Release
конфигурации.