2016-05-24 12 views
0

zu initialisieren Ich steckte mit einem Problem mit der Konvertierung von Code aus Obj-c.Selbst Klasse Controller

controller = [[[self class] alloc] initWithNibName:name bundle:nil]; 

Ich habe so etwas wie dieses

self.init(nibName: name, bundle: nil) 

versucht, aber es gibt mir eine Fehlermeldung: Constructing ein Objekt der Klasse Typ ‚BaseViewController‘ mit einem Metatyp Wert muss ein ‚erforderlich‘ initializer verwenden. Wie kann ich dieses Problem lösen?

Antwort

0

helfen Wie Ronak hingewiesen out müssen Sie die init(coder aDecoder: NSCoder!) Methode hinzufügen. Außerdem müssen Sie die Methode init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: NSBundle?) hinzufügen. Ihr Gesamtcode sieht also ungefähr so ​​aus:

class func customInitializer() -> ViewController { 
    return self.init(nibName: nil, bundle: nil) 
    } 

    required override init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: NSBundle?) { 
    super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil) 
    } 

    required init?(coder aDecoder: NSCoder) { 
    super.init(coder: aDecoder) 
    } 
Verwandte Themen