OC调用不了Swift方法

在swift类中创建了方法:

@objc func changeViewColor(color: UIColor){

        self.backgroundColor = color

    }

在OC中调用:

[test changeViewColor:[UIColor redColor]];

报错:

No visible @interface for 'TestSwiftView' declares the selector 'changeViewColor:'

原因:

在Objective-C中方法名是changeViewColorWithColor:而不是changeViewColor:,因为已经将color:暴露为外部标签。

解决方案:

1、用changeViewColorWithColor:调用

[test changeViewColorWithColor:[UIColor redColor]];

2、声明方法如下:

@objc func changeViewColor(_ color: UIColor){

        self.backgroundColor = color

    }

3、为Objective-C调用声明方法:

@objc(changeViewColor:) func changeViewColor(color: UIColor){

        self.backgroundColor = color

    }




iOS开发遇到问题欢迎前来留言,一定尽心尽力帮忙解答!!!

你可能感兴趣的:(OC调用不了Swift方法)