1

可以说我想这样做:

class foobar : NSObject {
//method declarations, etc.
}

然后后来:

let myDictionary:Dictionary = ["returnMeAnAwesomeClass":foobar]

不工作。

如果我输入foobar.Type,它也不起作用。

如果我输入foobar.classas foobar.Type,它也不起作用。

我想要这个的原因是因为系统 API 中有一个将类作为参数的方法,例如:

func enterState(_ stateClass: AnyClass) -> Bool

(在 GKStateMachine 中)

我发现能够获得一个字符串并将其变成一个类是可以接受的。

4

1 回答 1

2

foobar.self如果需要获取类类型,可以使用。您还应该在字典中添加类型安全:

let myDictionary: [String:AnyClass] = ["returnMeAnAwesomeClass": foobar.self]

如果您在声明字典的同一位置初始化字典,则可以跳过类型声明,因为编译器会推断它:

let myDictionary = ["returnMeAnAwesomeClass": foobar.self]
于 2016-01-23T21:47:42.783 回答