私はtypealiasを持っている:スイフトでは、タタリアスをどのように延長するのですか?
typealias BeaconId = [String: NSObject]
私は同じような何かをすることによってそれを拡張したいと思います:
extension BeaconId {}
しかし、これはコンパイルエラーがスローされます。
Constrained extension must be declared on the unspecialized generic type 'Dictionary' with constraints specified by a 'where' clause
だから私は終わりますすること:
extension Dictionary where Key: StringLiteralConvertible, Value: NSObject {}
これを行うためのよりクリーンな方法がありますか?
「拘束拡張子は 『どこ』句で指定された制約と非特殊ジェネリック型 『辞典』に宣言する必要があります」: '制約拡張を宣言する必要があります指定されていないジェネリック型 'Dictionary'の 'where' cl ause' – BallpointBen
ええ、私もそれを得た、あなたは私の完全な答えを以下でチェックアウトすることができます。基本的には、指定されたジェネリック型を拡張することはできないように見えますが、ジェネリック型はまだ設定されていません。 – barndog
@Robert私がSwift 3で見たいと思っているのは、プロトコルや継承の制約だけでなく、値のようなもので、拡張SomeEnum where Self == .MyCase'のようなものです。そのようにして、機能は特定の列挙ケースでのみ定義できます。 – barndog