2011-12-12 86 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 

和你反映這個方法的實現,你會發現錯誤應該消失。

相關問題