2017-02-23 10 views
0

私はこれをやろうとしている:SWIFT「型の値を添字することはできません」というエラー

self.prepared[$0] 

Dictionary<String, (String, Size)>のインスタンスどこ用意がある、と$ 0がStringです。

誰もが考えている - 私はなぜこれが下付き文字にできないのかわかりません。


(フルエラーがこれである:。PreparedImageResponsesは[String: (String, Size)]のtypealiasあるとProductImageResponseは(サイズがちょうど構造体である)タプル(String, Size)のtypealiasあるerror: cannot subscript a value of type 'inout PreparedImageResponses' (aka 'inout Dictionary<String, ProductImageResponse>')

+1

私はこれを再現することができません。[mcve] – Hamish

+0

を提供してください。私は遊び場で作った小さな例はまったく問題ありません。私はこれがSwiftコンパイラの出力エラーだと思っています - 私は自分のエラーが別の場所にあると思います。これは単なる副作用です。 – deanWombourne

+0

このような場合に私が時々行うことは、ローカル変数に '$ 0'を割り当ててから、Swiftがそれをどのように作るかを見ています。たぶん '$ 0'は実際に' String'ではないでしょうか?私は知っているが、コンパイラのエラーが必ずしも合わないとは思っていない。 – fguchelaar

答えて

-1

多分あなたはしてみてくださいself.prepared[$0]

に値を割り当てるか、または例:

に型キャストを追加する必要があります210
if let val = self.prepared[$0] as? SomeVal {} 
関連する問題