在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
}