statement local oculta advertencia de variable de instancia

La statement local oculta la window emergente de post variable cerca de "self.treatmentId = treatmentId;" y "self.treatmentName = treatmentName;";

@implementation Treatment @synthesize treatmentId; @synthesize treatmentName; -(Treatment *)initWithtreatmentName:(NSString *)treatmentName treatmentId:(NSString *)treatmentId{ if((self = [super init])){ self.treatmentId = treatmentId; self.treatmentName = treatmentName; } return self; } @end 

Cambia tu código a lo siguiente.

 @implementation Treatment @synthesize treatmentId; @synthesize treatmentName; -(Treatment *)initWithtreatmentName:(NSString *)newTreatmentName treatmentId:(NSString *)newTreatmentId{ if((self = [super init])){ self.treatmentId = newTreatmentId; self.treatmentName = newTreatmentName; } return self; } @end 

Al declarar la variable local trentmentName y treatmentId , básicamente está perdiendo la capacidad de acceder al global (iVars) a través de sus nombres.

Este error significa que self.treatmentName y self.treatmentID se han declarado previamente, por lo que la statement local oculta las variables de instancia. Si simplemente cambia su método init a:

 -(Treatment *)initWithtreatmentName:(NSString *)name treatmentId:(NSString *)identifiction 

y su implementación del método para reflejar esto, encontrará que el error debería desaparecer.