以下の内容はhttps://anton0825.hatenablog.com/entry/20140424/1406168887より取得しました。


ObjCで定義したクラスを継承したクラスをswiftで定義した時に、インスタンスがswiftで定義したクラスの型にならない場合がある

hosokawa0825/THLoadXibView · GitHubを使ってswiftでViewクラスを定義した。
継承構造は以下。
UIView > THLoadXibView > MySwiftView
ObjC側コードで以下のようにしてMySwiftViewインスタンスを作ると、実行時型もMySwiftViewになる。

MySwiftView *v = [[MySwiftView alloc] init];

しかし、MySwiftViewをXIB内のUIViewのClassに設定し、XIBからインスタンスを作ると、実行時型がUIViewになってしまう。
原因は、swiftで定義したクラスにinit(coder aDecoder: NSCoder!)を定義していなかったこと。
swiftで定義したクラスの場合、イニシャライザが定義されているクラスの型が実行時型になるのかも。。
そうすると、親クラスで定義されているイニシャライザはすべて以下のようにoverrideしないといけないので不便だと思うが。。これはバグなのかな。

    init(coder aDecoder: NSCoder!) {
        super.init(coder: aDecoder)
    }



以上の内容はhttps://anton0825.hatenablog.com/entry/20140424/1406168887より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14