[英]IBOutlet properties from Swift framework are missing from Objective-C app
我有一個我在Swift中編寫的框架,它包含一個擴展UIView
並具有IBOutlet
屬性的類。
從我的Objective-C應用程序可以看到該類,但Interface Builder將看不到IBOutlet。 這是代碼:
@objc protocol MyFrameworkDelegate {
// My delegate methods here
...
}
@objc class MyFrameworkClass: UIView {
@objc @IBOutlet var delegate:MyFrameworkDelegate?
// The rest of my class here
...
}
我把我的觀點的上課MyFrameworkClass
在我的故事板,但delegate
出口沒有顯示。
我嘗試使用和不使用@objc
修飾符,沒有運氣。 當我從Objective-C檢查我的類時,該屬性在沒有IBOutlet
情況下出現。
還有其他人遇到過類似的東西嗎?
編輯
這是Xcode為Swift生成的代碼 - > Objective-C轉換:
@protocol MyFrameworkDelegate;
SWIFT_CLASS("_Nc9a0xD6MyFrameworkClass")
@interface MyFrameworkClass : UIView
@property (nonatomic) id <MyFrameworkDelegate> delegate;
...
此外,這是我嘗試運行應用程序時收到的錯誤消息:
2014-06-22 21:41:59.095 MyApp Test[75211:17812266] Unknown class MyFrameworkClass in Interface Builder file.
2014-06-22 21:41:59.099 MyApp Test[75211:17812266] -[UIView setDelegate:]: unrecognized selector sent to instance 0xcf5d650
2014-06-22 21:41:59.101 MyApp Test[75211:17812266] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIView setDelegate:]: unrecognized selector sent to instance 0xcf5d650'
編輯
這是我的故事板的截圖:
您的模塊為“ None
,您應該將其選擇為相應的值。
reason: '-[UIView setDelegate:]: unrecognized selector
這使得看起來有問題的對象是UIView
的實例,而不是MyFrameworkClass
。 檢查IB中對象的類型。
我懷疑委托本身這個詞正在觸發某種潛在的錯誤/機制/漏洞抽象。
如何稱它為myFrameworkDelegate?
我也想知道從IB拖出是不是總能給出最好的結果,但我需要啟動Xcode 6並首先手動測試以查看會發生什么。 新技術 :)
代替
@objc @IBOutlet var delegate:MyFrameworkDelegate?
采用
@IBOutlet var delegate:AnyObject?
你可以將你的班級鏈接到這個屬性。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.