Ios Swift 5-枚举内的枚举
我正在尝试使用enum对项目进行分类。因此,我最终在枚举中包含了枚举。我不完全确定整个枚举是如何工作的 但我想做的是点击enum MaterialClassification,然后如果有第二个enum,比如case clay,点击该enum的值以字符串形式返回Ios Swift 5-枚举内的枚举,ios,swift,data-structures,enums,Ios,Swift,Data Structures,Enums,我正在尝试使用enum对项目进行分类。因此,我最终在枚举中包含了枚举。我不完全确定整个枚举是如何工作的 但我想做的是点击enum MaterialClassification,然后如果有第二个enum,比如case clay,点击该enum的值以字符串形式返回 enum MaterialClassification { case clay(value: Clay) case flux//(value: Fluxs) case glassFormer ca
enum MaterialClassification {
case clay(value: Clay)
case flux//(value: Fluxs)
case glassFormer
case stain//(value: Clay)
case accessoryMaterial
case all//(value: Clay)
}
extension MaterialClassification {
var materiaIdentifier: String {
switch self {
case .clay:
return "clay"
case .flux:
return "flux"
case .glassFormer:
return "glassFormer"
case .stain:
return "stain"
case .accessoryMaterial:
return "accessoryMaterial"
case .all:
return "all"
}
}
}
materialClassification: MaterialClassification.clay(type: Clay.isPrimaryKaolin)
我需要一种返回“原生高岭土”的方法。但是我不知道如何连接这两个枚举。如果我正确理解您的问题,您希望访问关联类型的属性。您可以向
MaterialClassification
enum添加新属性,并使用它访问案例
像这样的东西应该有用
var type: String? {
switch self {
case .clay(let clay):
return clay.clayType
case .flux(let flux):
return flux.fluxType
case .stain(let stain):
return stain.stainType
case .glassFormer, .accessoryMaterial, .all:
return nil
}
}
你的意思是
如果case.clay(let clay)=材料分类{print(clay.clayType)}否则{print(“not clay”)}
?@Sweeper正是这样!谢谢!:)这正是我要找的!非常感谢。
var type: String? {
switch self {
case .clay(let clay):
return clay.clayType
case .flux(let flux):
return flux.fluxType
case .stain(let stain):
return stain.stainType
case .glassFormer, .accessoryMaterial, .all:
return nil
}
}