¿Qué es NSParameterAssert
?
¿Alguien puede explicarlo con un ejemplo?
¿Qué es NSParameterAssert
?
¿Alguien puede explicarlo con un ejemplo?
Respuestas:
Es una forma sencilla de probar que el parámetro de un método no es 0 nil
o no. Básicamente, lo usa para crear una condición previa, indicando que se debe establecer algún parámetro. Si no se establece, la macro hace que la aplicación se anule y genera un error en esa línea. Entonces:
- (void)someMethod:(id)someObjectThatMustNotBeNil
{
// Make sure that someObjectThatMustNotBeNil is really not nil
NSParameterAssert( someObjectThatMustNotBeNil );
// Okay, now do things
}
Las condiciones previas son una forma sencilla de garantizar que el programador llame correctamente a los métodos / API. La idea es que si un programador viola la condición previa, la aplicación finaliza antes, con suerte durante la depuración y las pruebas básicas.
NSParameterAssert
Sin embargo, se puede usar para probar que cualquier expresión se evalúe como verdadera, por lo que también puede usarla así:
NSParameterAssert( index >= 0 ); // ensure no negative index is supplied
Release
configuración. Puedes controlar esto configurando la ENABLE_NS_ASSERTIONS
configuración de compilación en las versiones más recientes de Xcode, o definiendo la NS_BLOCK_ASSERTIONS
macro y configurándola en 1. En Xcode 5 hay una configuración de proyecto * Habilitar Foundation Assertions` que establece la configuración de compilación y los valores predeterminados Yes
en Debug
y No
en Release
configuraciones.