Ответ 1
Существуют разные способы сделать это, если ваш метод наследует от NSObject, вы можете открыть его до objective-c и сделать что-то подобное.
@objc(BaseAsyncTask)
class BaseAsyncTask: WebServiceClient {
class func execute(content : [String:AnyObject], cancelled:CustomBool)
{
println("Class \(NSStringFromClass(self))")
}
}
Для чистой интроспекции SWIFT проверьте здесь MirrorType
Я также нашел эти кредиты для расширения ImpactZero
public extension NSObject{
public class var nameOfClass: String{
return NSStringFromClass(self).components(separatedBy: ".").last!
}
public var nameOfClass: String{
return NSStringFromClass(type(of: self)).components(separatedBy: ".").last!
}
}
[Xcode 8]
Алекс предложил мне, что в версии Xcode 8 этот код показывает предупреждение. Чтобы избежать этого, мы должны префикс метода следующим образом:
@nonobjc class var className: String{
return NSStringFromClass(self).components(separatedBy: ".").last!
}