2016-05-24 2 views
0

obj-cからコードを変換する際に問題が発生しました。コントローラを初期化するための自己クラス

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

私はこの

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

のようなものを試してみました。しかし、それは私にエラーを与える:は、メタタイプの値を持つ「BaseViewController」をクラス型のオブジェクトを構築する「必要」初期化子を使用する必要があります。 この問題を解決するにはどうすればよいですか?

答えて

0

を助けることを願っていますあなたはinit(coder aDecoder: NSCoder!)メソッドを追加する必要があります。それに加えて、init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: NSBundle?)メソッドも追加する必要があります。したがって、全体のコードは次のようになります。

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) 
    } 
関連する問題