本地声明隐藏实例variables警告

本地声明隐藏“self.treatmentId = treatmentId;”附近的实例variables消息popup窗口 和“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 

将您的代码更改为以下内容。

 @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 

通过声明局部variablestrentmentNametreatmentId你实质上失去了通过它们的名字来访问全局(iVars)的能力。

这个错误意味着self.treatmentName和self.treatmentID已经被声明过,所以本地声明隐藏了实例variables。 如果您只是简单地将您的init方法更改为:

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

和你的方法的实现来反映这一点,你会发现错误应该消失。