【发布时间】:2020-01-07 16:46:43
【问题描述】:
我正在尝试根据设备是否为 iPhoneX 设置枚举的 rawValues,我已将其存储为布尔值 isiPhoneX。如果 isiPhoneX 为真,我希望 rawValue 为 0.0,如果不是,则为 1.0。看起来三元运算符不符合 rawValue。但是这个问题有什么变通方法/解决方案吗?
public enum Angles: Double {
case angle1 = isiPhoneX ? 0.0 : 1.0
}
我收到以下错误消息:
“Angles”声明了原始类型“Double”,但不符合 RawRepresentable 且无法综合符合性
当前面的原始值不是整数时,枚举 case 必须声明原始值
枚举大小写的原始值必须是文字
更新: 我没有提到我还有其他不需要三元逻辑的情况,我意识到现在是相关的。更准确的例子:
public enum Angles: Double {
case angle1 = isiPhoneX ? 0.0 : 1.0
case angle2 = 5.0
case angle3 = 6.0
}
【问题讨论】:
标签: ios swift enums ternary-operator