No visible @interface for 'XXX' declares the selector 'XXX'

今天研究了一下Swift和OC混编,在OC文件中调用Swift方法时候报错:

No visible @interface for 'XXX' declares the selector 'XXX'

解决方法

因为Swift提供给OC的方法需要用@objc来显式声明一下,并用public修饰其方法,另外提供带参数的方法的时候,Swift转化成OC方法会带上参数名字,例如:

Swift代码:

@objc public func showSwiftLog(str:String) -> Void {
        print(str)
    }

当在OC中调用的时候:

    Swift4OC *sc = [[Swift4OC alloc]init];
    [sc showSwiftLogWithStr:@"oc类中调用swift方法"];
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Python3 匿名函数定义一个函数与变量的定义非常相似,对于有名函数,必须通过变量名访问 def func(x,...
    夜微凉_f32f阅读 167评论 0 0
  • “喂!哪位?” 沉萧握着电话的手紧了紧,只是分开半天而已呀,仅仅是听着声音就轻而易举地扰乱了她的一池春水。 “是我...
    咸鱼惠翻身阅读 305评论 0 5
  • 我做了一个决定 花了十秒 没想到 用了一生去践行 你不知道 不怪你 毕竟 故意也是一种回应
    形而下阅读 272评论 0 0

友情链接更多精彩内容