Wenn ich versuche, eine neue Swift-Klasse basierend auf einem objektiven C zu erstellen;swift: Methode enthält "NSMutableArray" überschreibt nicht
Ich habe festgestellt, dass eine Methode enthält NSMutableArray nicht aufgerufen; Einige andere Override-Methoden sind in Ordnung;
Hier sind die Code-Segment von denen:
Geordnete Klasse
- (void)setMenuArray:(NSMutableArray *)array
{
NSLog(@"Default SetMenu Logic");
}
Kinder Klasse
func setMenuArray(menuArray : NSMutableArray) {
menuArray.add("test1");
menuArray.add("test2");
NSLog("Override setMenuArray Logic");
NSLog("%@", menuArray);
}
Was ist zurückkommen wird, dass die ChildClass.setMenuArray isn‘ t genannt, aber rief die ParentClass-Version:
wie folgt aus:
2016-12-22 10:22:08.941 Taped[9787:410028] Before SetMenu
2016-12-22 10:22:08.941 Taped[9787:410028] Default SetMenu Logic
2016-12-22 10:22:08.942 Taped[9787:410028] getMenuArray: called
2016-12-22 10:22:08.943 Taped[9787:410028] After SetMenu
Es ist in Ordnung für die Methode hat keine Parameter
Eine andere Sache ist, dass, wenn ich hinzufügen, versucht „überschreiben“ Präfix, es einen Compiler-Fehler zeigen „Methode Doesn 't override ... "
Wie werden die Elternklasse und das Kind Klasse deklariert? Bitte zeigen Sie diesen Code an. –