我如何根据 Swiftui 中的其他枚举获取枚举值?
How can i get an enum value based on other enum in Swiftui?
我试图从基于其他枚举的枚举中获取字符串,我该怎么做?
我想获取图标:基于GenderString的GenderIcon字符串
我的游乐场:
import UIKit
enum GenderString: String {
case man = "man"
case woman = "woman"
}
enum GenderIcon: String {
case man = "♂️"
case woman = "♀️"
}
var gender: GenderString = .man
var genderIcon: GenderIcon = .woman // case is wowan at start and it's normal
print(" \(gender)")
// I tried these :
print(" \(genderIcon.rawValue(gender))") // < - I want here the man icon based on gender
print(" \(genderIcon.rawValue(gender.rawValue))")
print(" \(genderIcon(gender))")
print(" \(genderIcon(gender.rawValue))")
您有两种方法可以做到这一点。第一个是在你的枚举上创建一个 属性,returns 是另一个的值。第二个是在枚举上创建一个 init
,将另一个用作 属性。
第一个例子:
enum GenderString: String {
case man = "man"
case woman = "woman"
var icon: GenderIcon {
switch self {
case .man: return .man
case .woman: return .woman
}
}
}
enum GenderIcon: String {
case man = "♂️"
case woman = "♀️"
}
var gender: GenderString = .man
gender.icon.rawValue // ♂️
第二个例子。
enum GenderString: String {
case man = "man"
case woman = "woman"
}
enum GenderIcon: String {
case man = "♂️"
case woman = "♀️"
init(gender: GenderString) {
switch gender {
case .man: self = .man
case .woman: self = .woman
}
}
}
var gender: GenderString = .woman
var icon = GenderIcon(gender: gender)
icon.rawValue // ♀️
但是,因为您可以向枚举添加属性,所以您可以跳过为图标使用单独的枚举并将您的示例简化为:
enum Gender: String {
// Implicitly uses the case name as the raw string value
case man
case woman
var icon: String {
switch self {
case .man: return "♂️"
case .woman: return "♀️"
}
}
}
var man: Gender = .man
man.icon // ♂️
我试图从基于其他枚举的枚举中获取字符串,我该怎么做?
我想获取图标:基于GenderString的GenderIcon字符串
我的游乐场:
import UIKit
enum GenderString: String {
case man = "man"
case woman = "woman"
}
enum GenderIcon: String {
case man = "♂️"
case woman = "♀️"
}
var gender: GenderString = .man
var genderIcon: GenderIcon = .woman // case is wowan at start and it's normal
print(" \(gender)")
// I tried these :
print(" \(genderIcon.rawValue(gender))") // < - I want here the man icon based on gender
print(" \(genderIcon.rawValue(gender.rawValue))")
print(" \(genderIcon(gender))")
print(" \(genderIcon(gender.rawValue))")
您有两种方法可以做到这一点。第一个是在你的枚举上创建一个 属性,returns 是另一个的值。第二个是在枚举上创建一个 init
,将另一个用作 属性。
第一个例子:
enum GenderString: String {
case man = "man"
case woman = "woman"
var icon: GenderIcon {
switch self {
case .man: return .man
case .woman: return .woman
}
}
}
enum GenderIcon: String {
case man = "♂️"
case woman = "♀️"
}
var gender: GenderString = .man
gender.icon.rawValue // ♂️
第二个例子。
enum GenderString: String {
case man = "man"
case woman = "woman"
}
enum GenderIcon: String {
case man = "♂️"
case woman = "♀️"
init(gender: GenderString) {
switch gender {
case .man: self = .man
case .woman: self = .woman
}
}
}
var gender: GenderString = .woman
var icon = GenderIcon(gender: gender)
icon.rawValue // ♀️
但是,因为您可以向枚举添加属性,所以您可以跳过为图标使用单独的枚举并将您的示例简化为:
enum Gender: String {
// Implicitly uses the case name as the raw string value
case man
case woman
var icon: String {
switch self {
case .man: return "♂️"
case .woman: return "♀️"
}
}
}
var man: Gender = .man
man.icon // ♂️