estoy usando el siguiente código ...convención de Objective-C para evitar "local declaración esconde variable de instancia", advirtiendo
-(id) initWithVariableName:(NSString*)variableName withComparisonValue:(NSString*)comparisonValue {
// super init
self = [super init];
if (!self) return nil;
// set instance variables
self.mustExist = NO;
self.reverseCondition = NO;
self.regularExpression = NO;
self.variableName = variableName; // generates warning
self.comparisonValue = comparisonValue; // generates warning
return self;
}
que generó los dos siguientes advertencias ...
- Declaración local de 'variableName' esconde variable de instancia
- Declaración local de 'comparisonValue' esconde instancia de variable
¿Existe una convención común o aceptada para tratar estas advertencias?
Entiendo que es simplemente para informar al usuario que debe especificar una instancia al referirse al miembro de la clase, pero es molesto.
es sólo una advertencia. simplemente puede ignorarlo – newacct
No es siquiera un problema en este ejemplo, ya que está accediendo a todas sus variables de instancia a través de la sintaxis de punto. Incluso si utilizara la sintaxis convencional de eliminación de struct ('self-> variableName') no habría ningún problema. Esta advertencia solo le dice que no puede usar 'variableName' por sí mismo para referirse a la variable de instancia. – codewarrior
¿No hay un pragma para desactivar esta advertencia? Odio el código feo – mxcl