如何解决我可以在enumSwift中将字符串数组保留为case的RawValue吗?
当前,我想在枚举库中将数组保留为rawValue,但是它们显示出这样的错误
Raw type '[String]' is not expressible by a string,integer,or floating-point literal
有人可以建议我吗?
我需要的MyEnum。
enum PaymentState: [String] {
case pending = ["first","second"]
}
解决方法
您拥有的替代解决方案是
enum PaymentState{
case pending
var list: [String] {
switch self {
case .pending:
return ["first","second"]
}
}
}
您可以这样访问
PaymentState.pending.list
此解决方案的优点是可以添加更多案例。在枚举中,您可以添加在转换案例中通过列表添加评估值,也可以给出任何名称。
,一种实现这种风格的方法,可以使用RawRepresentable
enum PaymentState: RawRepresentable {
typealias RawValue = Array<String>
init?(rawValue: Array<String>) {
if rawValue == ["first","second"] {
self = .pending
}
return nil
}
var rawValue: Array<String> {
switch self {
case .pending:
return ["first","second"]
}
}
case pending
}
PaymentState.pending.rawValue // ["first","second"]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。