我试图根据设备是否是 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)