Swift: Either/or 初始化器

Swift: Either/or lnitializer

有什么方法可以声明一个 Swift 协议,其中实现 class 应该有一个接受字符串或字典的初始化器?

干杯

尼克

你最好的尝试是这样的:

enum TextOrDict
{
    case Text(String)
    case Dict(Dictionary)
}

protocol MyProtocol
{
    init(value: TextOrDict)
}
protocol MyProtocol {
    init(_ dictionary: Dictionary)
    init(_ string: String)
}

从技术上讲,您将有两种方法,但用户会将其视为一种方法。