How to pass a Swift type as a method argument?
问题 I'd like to do something like this: func doSomething(a: AnyObject, myType: ????) { if let a = a as? myType { //… } } In Objective-C the class of class was Class 回答1: You have to use a generic function where the parameter is only used for type information so you cast it to T : func doSomething<T>(_ a: Any, myType: T.Type) { if let a = a as? T { //… } } // usage doSomething("Hello World", myType: String.self) Using an initializer of the type T You don’t know the signature of T in general