2017-02-17 7 views
0

enter image description hereは予想引数の型に「[MyProtocol]」型の値を変換することはできません「inoutの_」

を私はこれが起こっ作ったものを発見しようとしましたが、私は失敗し、何か問題があるのでしょうか?

他に誰かがこのようなエラーが発生しましたか?

は、私はそれのために何ができるか、私はこれが私のコードです

助ける必要があります。

protocols = structs 

をループ:

protocol MyProtocol { 

} 

struct MyStruct: MyProtocol { 

} 


let structs = [MyStruct(), MyStruct()] 

var protocols = [MyProtocol]() 

protocols = structs // it's ok 

protocols += structs // this got an error 

答えて

2

は、この行で発生コンパイラの魔法があります構造体、それぞれをプロトコルコンテナにボクシングし、次に割り当てを行います。

protocols = structs.map{ $0 as MyProtocol } 

または同等:

protocols = structs as [MyProtocol] 

このコンパイラ魔法+=オペレータに適用されていない、それは、本質的にこの操作を行います。あなたは自分でそれを行うことができます:

protocols += structs as [MyProtocol] 
関連する問題