2011-12-12 91 views
3

本地声明隐藏“self.treatmentId = treatmentId;”附近的实例变量消息弹出窗口和“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 
+0

更改initWithtreatmentName方法中的第一个参数名称。 – Narayana

+0

修改如下方法 - (治疗*)initWithtreatmentName:(NSString *)治疗名称treatmentId:(NSString *)treatmentId像这样 - (治疗*)initWithtreatmentName:(NSString *)otreatmentName treatmentId:(NSString *)otreatmentId,您的实例名称和参数名称相同的方式警告出现。 – ajay

回答

9

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

@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 

通过声明局部变量trentmentNametreatmentId你基本上失去通过自己的名字访问全局(高德)的能力。

+0

它的工作原理。谢谢。 – susitha

0

此错误意味着self.treatmentName和self.treatmentID已被声明,因此本地声明隐藏了实例变量。如果你简单地改变你的init方法:

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

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

相关问题