2016-06-14 4 views
2

objective-cでは、公開ヘッダーを通じてクラスのプロトコルをいつでもチェックできます。しかし、あなたがクラスを迅速に持っているなら、それがどのプロトコルに適合しているかをどのように知っていますか?これも可能ですか?クラスが迅速に準拠しているプロトコルを決定するにはどうすればよいですか?

(はい、アップルのマニュアルには、それに準拠したプロトコルが記載されていますが、それは実際のソリューションのようには見えません。私的フレームワークで作業しているか、 。プロトコル)

はまた、はい、私はあなたがここで概説技術を使用して、特定のプロトコルを確認することができます知っている:https://stackoverflow.com/a/37351027/18961

+1

適合性を確認するには 'is'または 'as'を使用できます(プロトコルの適合性を確認する):https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/Protocols .html –

答えて

1

私はあなたがObjective-Cランタイムにもたずにそれを行うことができると信じていません。 ObjectiveCをインポートし、class_copyProtocolList()機能を使用してください。

+0

これは私の理解でもありましたが、別の方法があることを期待していました。 – livingtech

+1

これは、@objcプロトコルに準拠するNSObjectのサブクラスでのみ機能します。 –

2

Xcodeでは、SwiftタイプをCommand-クリックすると、元の定義と拡張機能の両方に追加されたプロトコルの適合性を含むパブリックインターフェイスのヘッダーのような表示が得られます。

これは、定義するライブラリ外のライブラリによって追加されたプロトコルの適合性を示していません。 Stringをコマンドをクリックしても自分のextension String: MyFunkyProtocolは表示されません。しかし、私はそれが本質的にあなたが探しているヘッダーファイルのようなものだと思う。

スウィフト標準ライブラリについては、http://swiftdoc.org/が参考になります。

+0

このパブリックインターフェイスを表示するための特定のメニューオプションは何ですか?私はそれを見ていない可能性があります。 – livingtech

+0

エディタ内のテキストを右クリックし、 "Jump to Definition"をクリックします。 –

関連する問題