Objective-CからSwiftメソッドを呼び出す方法
はじめに
いまだにObjective-Cのコードを触る機会がありますが、そこからSwiftのコードを呼び出そうとした時にいつもどうやるんだっけ?となるのでメモがてら記事にしようと思います。
やること
Swift側
呼び出したいクラスとメソッドに@objc
をつけます。あとクラスはNSObject
を継承します
@objc class FooClass: NSObject { @objc func foo() { : } : }
@objcMembers
でクラス全体を呼び出せるようになります
@objcMembers class FooClass: NSObject { func foo() { : } : }
Objective-C側
ProductName-Swift.h
をインポートします。あとは普通に呼び出します
#import "ProductName-Swift.h" - (void)bar { : [[FooClass alloc] init] foo]; : }
さいごに
たまにしか使わないので結構忘れます。
先日もNSObject
の付け忘れで結構悩んでしまいました。今後はこちらのメモを見るようにしようと思います