Swift无法将[String:SomeProtocol]类型的值分配给[String:SomeProtocol]类型

时间:2018-11-24 15:02:06

标签: swift swift-protocols

我有一个叫做SomeProtocol的协议,并且很少有符合它的结构

struct myStruct1: SomeProtocol {}
struct myStruct2: SomeProtocol {}

我有地图

var myArray = [String : SomeProtocol]()

当我尝试

myArray = ["val1": myStruct1(), "val2": myStruct2()] 

我收到一个错误:

  

Swift无法分配类型[String:SomeProtocol]的值来键入   [String:SomeProtocol]

1 个答案:

答案 0 :(得分:0)

正如Hamish在评论中所述: 发生这种情况是因为项目中有SomeProtocol的两个定义。

要解决此问题,您只需重命名其中一个协议即可。