枚举rawvalue作为AnyClass
我知道你可以给枚举的String或Int的原始值,但有没有办法使其types像AnyClass例如
enum Name:AnyClass{ case classOne = ClassOne case classTwo = ClassTwo }
ClassOne和ClassTwo是类。 我得到的错误是:
原始types“AnyClass”不能从任何文字转换
那么还有另一种方法来实现这一目标吗?
那么还有另一种方法来实现这一目标吗?
我不知道“this”是什么,但就Swift语法而言,规则很简单。 这个:
enum Name:AnyClass {
是非法的。 只允许String和Int作为原始值types(只允许String和Int字面值作为case值)。
例如解决方法
typealias MyTypeData = (title: String, iconName: String) enum MyType: String { case Test1 case Test2 private var data: MyTypeData { switch self { case .Test1: return (title: "One", iconName: "icn1") case .Test2: return (title: "Two", iconName: "icn2") } } var title: String { get { return data.title } } var icon: UIImage? { get { return UIImage(named: data.iconName) } } }
或者你可以尝试
enum MyType: String { case Test1(data:OneClass) case Test2(data:TwoClass) }