带闭包的Swift init在Objective C中不可见Objective-C
问题描述:
带有闭包的swift自定义initilizer在目标c代码中不可见。带闭包的Swift init在Objective C中不可见Objective-C
init(url:String,request:ABaseRequest,
type:AnyClass, success:(ABaseResponse)->Void,
failure:(ResponseCode,NSError)->Void) {
......
......
}
,其中因为没有闭合的init可见
init(url:String,request:ABaseRequest,type:AnyClass) {
......
......
}
你们是否知道如何解决这个问题呢?
答
检查完整个代码后,我在代码中发现了问题。封闭内部使用的类不用@objc
进行注释! 。因此,要小心家伙,每一个将要暴露于客观c的班级都应该注明@objc
。谢谢。
答
现在你可能已经解决了这个问题。我自己遇到了类似的情况。
除非存在其他问题,否则可见性问题可以通过尝试构建项目来解决。如果你在Swift代码中引入了新的东西,Objective-C代码可能不会立即看到它,但构建项目应该修复它。
如果还有与您的自定义初始化程序相关的其他问题,编译器会在您尝试构建时告诉您。如果是这样,请在这里分享问题。