からスウィフトクラスメソッドのためclass_respondsToSelectorを呼び出して、私はObjective-Cのコード
場合は、Objective-Cのクラスから、私が見つける必要があり、私のターゲット名がPebble
であると仮定すると、
class ViewController: UIViewController {
func helloWorld(a: String)
{
print(a);
}
}
以下のようスウィフトクラスを持っていますViewController
クラスはセレクタhelloWorld:
に応答します。それはtrue
を返します - 私はlet responds = self.responds(to: Selector("helloWorld:"))
を書くときViewController
で)、しかし
1を
class_respondsToSelector(NSClassFromString(@"Pebble.ViewController"), NSSelectorFromString(@"helloWorld"))
class_respondsToSelector(NSClassFromString(@"Pebble.ViewController"), NSSelectorFromString(@"helloWorld:"))
class_respondsToSelector(NSClassFromString(@"ViewController"), NSSelectorFromString(@"helloWorld:"));
class_respondsToSelector(NSClassFromString(@"ViewController"), NSSelectorFromString(@"helloWorld"));
:私は、次のステートメントを試してみました。
2)AppDelegete
の場合、let responds = ViewController.responds(to: Selector("helloWorld:"))
と書くと、false
を返します。
3)let responds = ViewController.instancesRespond(to: Selector("helloWorld:"))
と書くとAppDelegete
に - false
を返します。
上記はすべてNO
です。これを修正するためには何をすべきか、あるいはエラーは何ですか?
これは機能します。関数が 'helloWorld(a:String b:String)'(つまり複数のパラメータ)のようなものである場合、ObjCの同等物はどのように見えますか? Swift 2.3ではその動作が異なりますか? – prabodhprakash
"Objective-Cセレクタを生成するとき、" With "と連結されます - 面白い! – Andreas
@prabodhprakash、それは 'helloWorldWithA:b:'となり、2つの引数を持つObjective-Cセレクタは2つのコロンを持ちます。 – OOPer