18086


プロトコルへの適合チェック（is,as）は、@objcで修飾したプロトコルものに限定されるみたいなのですが、@objcで修飾されていないプロトコルを適合したクラス、構造体は、プログラマが実装時に責任を持つことになるのですか？

@objcで修飾されていないプロトコルはどうのように考えるべきなのですか。  
なにかピンときません。

教えてください


CC BY-SA 3.0
2015-10-26T07:49:55.797
18084
2015-10-26T09:14:48.193
11148
question
swift
プロトコルについて


それは昔のSwiftの制限ではないでしょうか。初期のSwiftはランタイムの制限により実行時にプロトコルの適合を判断できませんでしたが、現在は`@objc`の付いてないプロトコルに対しても、`is`、`as`でプロトコルに適合しているかどうかをチェックすることができます。

より詳しくは下記のドキュメントの「Checking for Protocol Conformance」のところをご覧ください。

> Checking for Protocol Conformance  
>  You can use the is and as operators described in Type Casting to check for
> protocol conformance, and to cast to a specific protocol. Checking for and
> casting to a protocol follows exactly the same syntax as checking for and
> casting to a type:  
>
> <https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/Protocols.html>


CC BY-SA 3.0
2015-10-26T09:14:48.193
18086
2015-10-26T09:14:48.193
5519
18084
answer