2016-05-17 31 views
0

带有闭包的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) { 
    ...... 
    ...... 
} 

你们是否知道如何解决这个问题呢?

回答

0

检查完整个代码后,我在代码中发现了问题。封闭内部使用的类不用@objc进行注释! 。因此,要小心家伙,每一个将要暴露于客观c的班级都应该注明@objc。谢谢。

0

现在你可能已经解决了这个问题。我自己遇到了类似的情况。

除非存在其他问题,否则可见性问题可以通过尝试构建项目来解决。如果你在Swift代码中引入了新的东西,Objective-C代码可能不会立即看到它,但构建项目应该修复它。

如果还有与您的自定义初始化程序相关的其他问题,编译器会在您尝试构建时告诉您。如果是这样,请在这里分享问题。