2017-02-23 58 views
0

我试图做到这一点:雨燕“无法下标类型的值”的错误

self.prepared[$0] 

已配制是Dictionary<String, (String, Size)>一个实例,而$ 0是String

任何想法任何人 - 我不知道为什么这不能被下标。


(完整的错误是这样的:error: cannot subscript a value of type 'inout PreparedImageResponses' (aka 'inout Dictionary<String, ProductImageResponse>')

其中PreparedImageResponses是[String: (String, Size)]一个typealias和ProductImageResponse是一个元组(String, Size)(大小的typealias只是一个struct)

+1

我不能再现这个,请提供一个[mcve] – Hamish

+0

令人讨厌的是,我在操场上做的任何小例子都是绝对没问题的。我开始认为这是一个Swift编译器输出错误 - 我认为我的错误是在别的地方,这只是它的一个副作用。 – deanWombourne

+0

我有时在这种情况下做了什么,是将'$ 0'分配给一个局部变量,然后看看Swift对它做了什么。也许'$ 0'实际上不是'String'?跛脚,我知道,但编译器错误并不总是加起来,我发现.... – fguchelaar

回答

-1

也许你尝试。分配一些值给self.prepared[$0]

或者你应该为ex添加类型转换:

if let val = self.prepared[$0] as? SomeVal {}