Ответ 1
Это простой способ проверить, что параметр метода не является nil
или нет. Поэтому в основном вы используете его для создания предварительного условия, заявляя, что должен быть установлен какой-либо параметр. Если он не установлен, макрос заставляет приложение прерывать и генерирует ошибку в этой строке. Итак:
- (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