Ich habe einige Objective-C-Code:Wie referenzieren Sie einen Wert einer Klasse innerhalb einer Methode in derselben Klasse in Objective-C?
@interface CustomInitializers:NSObject
{
NSString *classStr;
NSInteger classInt;
}
+ (id) init;
+ (id) initWithString: (NSString *) stringToSet;
+ (id) initWithInteger: (NSInteger) intToSet;
+ (id) initWithAll:(NSString *)stringToSet classInt:(NSInteger)intToSet;
- (NSInteger) getClassInt;
- (NSString *) getClassStr;
@end
Wenn ich diese Klasse implementieren, ich auf die Variablen verweisen, indem sie mit einem Unterstrich (z _classStr) voranstellen. Dies führt jedoch beim Kompilieren zu einem Fehler:
Wie kann ich dies verhindern?
Thank you! Gibt es eine Möglichkeit, eine Eigenschaft daran zu hindern, einen Getter und Setter zu erzeugen? – InitializeSahib
Nein, der Zweck einer Eigenschaft besteht darin, eine Getter/Setter/und Instanzvariable automatisch zu generieren. Es ist ziemlich Standard. Wenn Sie eine private Eigenschaft wünschen, legen Sie sie einfach in die Implementierungsdatei. Wenn Sie wirklich nur die Instanzvariable haben möchten (was normalerweise aus einem sehr speziellen Grund der Fall ist und normalerweise nicht ohne einen guten Grund empfohlen wird), tun Sie einfach das oben genannte Verfahren, um Ihre Variablen in Ihre Implementierungsdatei zu verschieben und einen Unterstrich zu markieren als Instanzvariablen. – TheCodingArt
99% der Zeit sollten Sie Eigenschaften verwenden, obwohl – TheCodingArt