在我们ios开发中,object-c方法中调用swift代码,特别是swift3版本以上的代码,就会出现No visible @interface for 'ViewTexture' declares the selector 'renderwith'这类型的错误,其实原因并不是因为我们object-c代码中没有引入swift头文件,而是因为当我们使用类似swift4以上的代码时,object-c就无法访问到swift4类里面的方法了。
那么如何解决类似No visible @interface for 'ViewTexture' declares the selector 'renderwith'这类型的错误呢?
你还记得swift中的@objc这个关键字的作用吗?
默认情况下,swift生成的代码只能swift中可以用,而如果此时object-c中想要访问swift4代码内容,就要在swift代码的class类或者func方法前面加入@objc这个关键字(看你是类出错还是方法出错了),否则xcode就会编译出错。
因此解决上述的问题很简单,就是swift版本问题,以前swift3以内的版本是没有此问题点的。
假如小编上述swift类中的renderwith()方法本来是这样的,例如:
func renderwith(){}
则将方法改成如下这样既可解决上述错误:
@objc func renderwith(){}