美文网首页
OC调用不了Swift方法

OC调用不了Swift方法

作者: 请叫我小鹏哥儿 | 来源:发表于2019-07-19 09:48 被阅读0次

在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方法

      本文链接:https://www.haomeiwen.com/subject/axtjlctx.html