gpt4 book ai didi

Swift 可选绑定(bind),检查多种类型

转载 作者:行者123 更新时间:2023-11-28 12:13:24 25 4
gpt4 key购买 nike

我的类(class)有一个模型,它可能是两个不同类(class)的实例。现在我检查模型是否是我需要的类:

 guard let unwrappedModel = store.state.navigationState.getRouteSpecificState(store.state.navigationState.route) as myClassOne? else {
assertionFailure("Wrong model for RetailSalesVC")
return
}

现在我想检查模型是一级还是二级。这有可能实现吗?

现在我结束了这个(但没有可选绑定(bind)):

   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
}

最佳答案

如果你想运行它,这里有一个例子:

class ModelOne {}
class ModelTwo {}

let testObjects : [Any] = [ModelOne.init(), ModelTwo.init(), NSCoder.init()]
for obj in testObjects {
if (obj is ModelOne || obj is ModelTwo) {
print("\(obj) passes")
}else{
print("\(obj) fails")
}
}

应该给出以下输出:

main.ModelOne passes
main.ModelTwo passes
<NSCoder: 0x7f93a0c02b40> fails

关于Swift 可选绑定(bind),检查多种类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47671130/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com