Sagen Sie bitte die folgenden beiden Konstrukteure hatten:Objective-C - Aufruf einen Konstruktor aus einem anderen
- (id)initWithTitle:(NSString *)title;
- (id)initWithTitle:(NSString *)title page:(NSString *)page;
Der zweite Konstruktor nicht anders als der erste ist, mit der Ausnahme, dass sie die Membervariable „Seite“ einrichtet.
Da es im Grunde dasselbe tun muss, gibt es eine Möglichkeit, die erste von der zweiten zu nennen, um die Codeverdopplung zu reduzieren, oder muss man eine dritte Methode für die üblichen Aufgaben einrichten?
Ich spreche über etwas Ähnliches wie das, obwohl ich das bezweifeln funktioniert:
- (id)initWithTitle:(NSString *)_title {
if(self = [super init]) {
self.title = _title;
}
return self;
}
- (id)initWithTitle:(NSString *)_title page:(NSString *)_page {
if(self = [self initWithTitle:_title]) {
self.page = _page;
}
return self;
}
@phunehehe hat eine bessere Lösung, aber was du gepostet hast * wird * funktionieren. –
Huh, ich denke es wird jetzt, wo ich darüber nachdenke. Danke – synic
Je eher Sie die C++ - Begriffe fallen lassen und anfangen, die Objective-C-Begriffe zu verwenden, desto früher wird die Dokumentation sinnvoller. Objective-C hat keine Konstruktoren oder Membervariablen. Es hat Initialisierer und Instanzvariablen. – bbum