Co to jest NSParameterAssert
?
Czy ktoś może wyjaśnić na przykładzie?
źródło
Co to jest NSParameterAssert
?
Czy ktoś może wyjaśnić na przykładzie?
Jest to prosty sposób na sprawdzenie, czy parametr metody nie jest nil
równy 0. Zasadniczo używasz go do utworzenia warunku wstępnego, stwierdzając, że należy ustawić jakiś parametr. Jeśli nie jest ustawiona, makro powoduje przerwanie aplikacji i generuje błąd w tym wierszu. Więc:
- (void)someMethod:(id)someObjectThatMustNotBeNil
{
// Make sure that someObjectThatMustNotBeNil is really not nil
NSParameterAssert( someObjectThatMustNotBeNil );
// Okay, now do things
}
Warunki wstępne to prosty sposób na zapewnienie, że metody / API są poprawnie wywoływane przez programistę. Chodzi o to, że jeśli programista naruszy warunek wstępny, aplikacja zakończy się przedwcześnie - miejmy nadzieję, podczas debugowania i podstawowych testów.
NSParameterAssert
można jednak użyć do sprawdzenia, czy każde wyrażenie zostanie uznane za prawdziwe, więc można go również użyć w ten sposób:
NSParameterAssert( index >= 0 ); // ensure no negative index is supplied
Dokumentacja firmy Apple dotycząca makra NSParameterAssert ()
Release
konfiguracji. Możesz to kontrolować, ustawiając ustawieniaENABLE_NS_ASSERTIONS
kompilacji w nowszych wersjach Xcode lub definiującNS_BLOCK_ASSERTIONS
makro i ustawiając je na 1. W Xcode 5 jest ustawienie projektu * Enable Foundation Assertions, które ustawia ustawienia kompilacji i domyślnie naYes
inDebug
iNo
inRelease
konfiguracje.