Swiftでは、1つ以上のプロトコルに準拠する特定の型の変数をどのように宣言できますか?
Swiftでは、次のように宣言することで、変数の型を明示的に設定できます。 var object: TYPE_NAME さらに一歩踏み込んで、複数のプロトコルに準拠する変数を宣言する場合は、protocol宣言型を使用できます。 var object: protocol<ProtocolOne,ProtocolTwo>//etc 1つ以上のプロトコルに準拠し、特定の基本クラス型でもあるオブジェクトを宣言したい場合はどうなりますか?Objective-Cの同等の機能は次のようになります。 NSSomething<ABCProtocolOne,ABCProtocolTwo> * object = ...; Swiftでは、私はそれが次のようになることを期待します: var object: TYPE_NAME,ProtocolOne//etc これにより、プロトコルで定義された追加のインターフェイスだけでなく、基本型の実装にも柔軟に対応できるようになります。 私が見逃しているもっと明白な方法はありますか? 例 例として、UITableViewCellプロトコルに準拠したセルを返す責任があるファクトリーがあるとします。プロトコルに準拠したセルを返す汎用関数を簡単に設定できます。 class CellFactory { class func createCellForItem<T: UITableViewCell where T:MyProtocol >(item: SpecialItem,tableView: UITableView) -> T { //etc } } 後で、タイプとプロトコルの両方を活用しながら、これらのセルをデキューしたい var cell: MyProtocol = CellFactory.createCellForItem(somethingAtIndexPath) as UITableViewCell テーブルビューセルがプロトコルに準拠していないため、これはエラーを返します... セルがaでUITableViewCellありMyProtocol、変数宣言のに準拠していることを指定できますか? …