- 场景描述:在OC类的方法中,调用Swift类的方法,报错:No visible @interface for ‘CCC’ declares the selector ‘MMM’(CCC为类名,MMM为方法名)
// OC中的方法:
- (void)test {
NSLog(@"hello Objective-C!");
NSLog(@"===========OC调用Swift===========");
JRSwiftHello *swift = [[JRSwiftHello alloc] init];
[swift printHello]; // 调用Swift中方法报错
}
// Swift中的方法
func printHello() {
print("hello Swift!")
}
- 解决办法:在Swift中的方法前加@objc(方法名)
// 修改后Swift中的方法
@objc(printHello)
func printHello() {
print("hello Swift!")
}
参考地址:http://blog.youkuaiyun.com/IOSWEB/article/details/52037484
拓展
- Swift文件中使用OC类:在自动生成的桥接文件
XXX-Bridging-Header.h中引入OC头文件 - OC文件中使用Swift类:在需要使用的文件中引入
#import "XXX-Swift.h" - 注:XXX为项目名称
- Swift文件中使用OC类:在自动生成的桥接文件
本文介绍了解决Objective-C调用Swift方法时报错的问题,通过在Swift方法前添加@objc注解解决了“Novisible@interfacefor‘CCC’declarestheselector‘MMM’”的错误。同时介绍了Swift文件如何使用Objective-C类以及Objective-C文件如何使用Swift类的方法。
1928

被折叠的 条评论
为什么被折叠?



