这里简短的问题:
我得到了一个协议protocol SCResourceModel {..}和一个字典,它将使用这种协议类型作为密钥:[SCResourceModel : String].这显然不起作用,因为字典中的键必须符合协议Hashable.使我SCResourceModel继承Hashable或尝试这样的东西[protocol<SCResourceModel, Hashable> : String]显然不起作用,因为Hashable或者Equatable只能用作通用约束而不是类型本身.
我观看了WWDC 2015和Swift 2.0,可以为协议添加约束,例如:protocol SCResourceModel where Self: Hashable {..}直接解决这个问题(非常好).
无论如何,我的问题是:我可以用当前的Swift 1.2版本做一些类似的东西,并以某种方式使用这个协议作为字典的关键吗?或者任何人都可以提出一个很好的解决方法或其他我可能忽略的东西?
我目前在Swift 1.2中看到的唯一解决方案是将协议转换为继承自例如NSObject的类,并且必须进行子类化以便在我的API中进一步使用.
谢谢你的帮助!