【发布时间】:2015-08-26 21:45:20
【问题描述】:
这是我正在玩弄的一组价值关系的示例。
protocol Configurable {
func configure(data: Any?) -> Void
}
class RelatedObject {
var x: String = ""
var y: String = ""
}
class Example {
var a: String = ""
var b: String = ""
var c: String = ""
}
extension Example: Configurable {
func configure(data: Any?) //I want the parameter to be of type RelatedObject?, not Any?
{
if let d = data as? RelatedObject { //I don't want to have to do this every time i implement Configurable on an object.
//do stuff
a = d.x
b = d.y
c = d.x + d.y
}
}
}
有没有办法让我的实现 Configurable 协议的类能够限制它们在函数签名中接受的特定类型的对象?
我觉得 Swift 会/可以/应该有办法避免我必须检查类类型以了解传递给我想要配置的对象的内容。
【问题讨论】: