枚举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) }