2016-05-17 53 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代碼可能不會立即看到它,但構建項目應該修復它。

如果還有與您的自定義初始化程序相關的其他問題,編譯器會在您嘗試構建時告訴您。如果是這樣,請在這裏分享問題。