我正试图让一个特定的字典类型符合协议。

typealias FirebaseDictionary = Dictionary<String, FirebaseValue>

我想要符合一个FirebaseValue协议
protocol FirebaseValue {
    // stuff here
}

我试过这个
extension FirebaseDictionary: FirebaseValue {

}

但我得到了一个错误。所以我现在有了这个
extension Dictionary where Key == String, Value == FirebaseValue {

}

但如果可能的话,我无法找到使其符合协议的正确语法。如果不可能,有没有其他方法达到同样的效果?我试图只允许特定类型进入一个属性,并且能够轻松地识别它们在读回时是什么类型。
This question was asked但是没有给出明确的答案,而且不管怎样,它可能已经改变了。

最佳答案

由于Swift 4.2,您可以使用以下工具进行此操作:

extension Dictionary : FirebaseValue where Key == String, Value == FirebaseValue {
}

09-06 12:13