Що це таке NSParameterAssert
?
Хто-небудь може пояснити на прикладі?
Що це таке NSParameterAssert
?
Хто-небудь може пояснити на прикладі?
Відповіді:
Це простий спосіб перевірити, nil
чи не є параметр методу рівним чи ні 0. Отже, в основному ви використовуєте його для створення передумови, заявляючи, що якийсь параметр повинен бути встановлений. Якщо його не встановлено, макрос призводить до переривання програми та генерує помилку на цьому рядку. Тому:
- (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
в Debug
і No
в Release
конфігурації.