小编Mic*_*Bao的帖子

如何使用 if 逻辑或三元运算符在 Swift 中设置枚举案例的 rawValue?

我试图根据设备是否是 iPhoneX 设置枚举的 rawValues,我将其存储为布尔值 isiPhoneX。如果 isiPhoneX 为 true,我希望 rawValue 为 0.0,如果不是,则为 1.0。似乎三元运算符不符合 rawValue 。但这个问题有任何解决方法/解决方案吗?

public enum Angles: Double {
   case angle1 = isiPhoneX ? 0.0 : 1.0
}
Run Code Online (Sandbox Code Playgroud)

我收到以下错误消息:

“Angles”声明原始类型“Double”,但不符合 RawRepresentable 并且无法合成一致性

当前面的原始值不是整数时,枚举案例必须声明原始值

枚举大小写的原始值必须是文字

更新:我没有提到我还有其他不需要三元逻辑的情况,我意识到这现在是相关的。一个更准确的例子:

public enum Angles: Double {
   case angle1 = isiPhoneX ? 0.0 : 1.0
   case angle2 = 5.0
   case angle3 = 6.0
}
Run Code Online (Sandbox Code Playgroud)

enums ternary-operator ios swift

2
推荐指数
1
解决办法
1500
查看次数

标签 统计

enums ×1

ios ×1

swift ×1

ternary-operator ×1