2017-10-06 7 views
1

Swift 4.0への移行が、私は@IBInspectableで問題に直面しています、@IBInspectable

open class SVContactBubbleView: UIView 
{ 
    @IBInspectable open var dataSource: SVContactBubbleDataSource? //ERROR..!! 
    @IBInspectable open var delegate: SVContactBubbleDelegate? //ERROR..!! 
} 

public protocol SVContactBubbleDataSource 
{ 
    //Methods here 
} 

public protocol SVContactBubbleDelegate 
{ 
    //Methods here 
} 

表示されるエラーは次のとおりです。

その型ができないので、プロパティ@IBInspectableマークを付けることはできませんそれはヲた、Swift 3でのObjective-C

で表されますうまくいく。 Swift 4で何が問題になったのか分かりません。

また、コンパイラには提案が表示されません。エラーメッセージが表示されます。

+2

エラーが本当に明らかである。ここ

enter image description here

@objc表記のためのアップルのドキュメントです。スウィフト3では実際にはコンパイルをパスしても動作しませんでした。 Interface BuilderのエディタはSwift 3であなたを探しましたか? – Sulthan

+3

プロトコルは 'class'プロトコルですか? '@ objc'とマークされていますか?また、デリゲートはおそらく「弱い」べきであることに注意してください。 – Sulthan

+0

IBで接続する場合は、 '@ IBInspectable'ではなく' @ IBOutlet'sでなければなりません。 –

答えて

0

(コードの下に示されるように)ここでスイフト4にデリゲートとデータソースの両方に

open class SVContactBubbleView: UIView { 
    @IBInspectable open var dataSource: SVContactBubbleDataSource? 
    @IBInspectable open var delegate: SVContactBubbleDelegate? 
} 

@objc // add notation here 
public protocol SVContactBubbleDataSource 
{ 
    //Methods here 
} 


@objc // add notation here 
public protocol SVContactBubbleDelegate 
{ 
    //Methods here 
} 


を表記@objcを追加は、参考文献です。エラー解像度でスナップショット: - Protocol - Optional Protocol Requirements

関連する問題