在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开发遇到问题欢迎前来留言,一定尽心尽力帮忙解答!!!
网友评论