Co to jest NSParameterAssert?
Czy ktoś może wyjaśnić na przykładzie?
Co to jest NSParameterAssert?
Czy ktoś może wyjaśnić na przykładzie?
Odpowiedzi:
Jest to prosty sposób na sprawdzenie, czy parametr metody nie jest nilró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 ()
Releasekonfiguracji. Możesz to kontrolować, ustawiając ustawienia ENABLE_NS_ASSERTIONSkompilacji w nowszych wersjach Xcode lub definiując NS_BLOCK_ASSERTIONSmakro i ustawiając je na 1. W Xcode 5 jest ustawienie projektu * Enable Foundation Assertions, które ustawia ustawienia kompilacji i domyślnie na Yesin Debugi Noin Releasekonfiguracje.