【发布时间】:2018-05-20 03:32:51
【问题描述】:
我的班级模型可能是 2 个不同班级的实例。现在我检查该模型是我需要的类:
guard let unwrappedModel = store.state.navigationState.getRouteSpecificState(store.state.navigationState.route) as myClassOne? else {
assertionFailure("Wrong model for RetailSalesVC")
return
}
现在我想检查模型是一类还是二类。有可能实现吗?
现在我得到了这个(但没有可选绑定):
guard (((store.state.navigationState.getRouteSpecificState(store.state.navigationState.route) as MyClassOne?) != nil)) ||
(((store.state.navigationState.getRouteSpecificState(store.state.navigationState.route) as MyClassTwo?) != nil)) else {
assertionFailure("Wrong model for \(self)")
return
}
【问题讨论】:
-
你在浪费太多的括号????
-
如果您只知道
unwrappedModel是 MyClassOne 或 MyClassTwo,您将如何使用它? – 您可能想要定义一个可以匹配的通用协议。 -
@vadian 我承认这看起来很丑)
-
@MartinR 他们实际上确实有共同的协议,但该协议在其他类之间共享不适合这里。所以,我想和他们一起工作,就像我想使用特定的协议一样,但我不希望其他类通过。
标签: swift