2016-11-28 11 views
1

ここに私のコマンドクラスの配列の宣言があります。Swift 3.0プロトコルのインスタンス化

var commands: [IPICommand.Type] = [CLoginCommand.self] 

IPICommandプロトコルであり、CLoginCommandプロトコルを実装するクラスです。配列の中にはただ1つの要素しかありませんが、もっと多くの要素があります。

let aCommand = commands[0]() 

現在インスタンス化は問題があります:「IPICommand.Type」

答えて

1

あなた非機能型の値を呼び出すことはできません

この後、私は、配列の要素の一つをインスタンス化したいと思いますプロトコルであるIPICommandタイプをインスタンス化しようとしています。 は、それが動作しますあなたがcommands[0]()を行うことができます。このようにして、あなたのプロトコルの宣言

protocol IPICommand { 
    init() 
} 

init方法を定義します。 別の方法でinitに名前を付けるのが好きですが、これはあなた次第です。

+0

あなたはそうです。 'commands [0]()'は動作しませんが、 'commands [0] .init()'は動作しますが、小さな違いです。 –

関連する問題