Ответ 1
import Foundation
class PrintClassName : NSObject {
override init() {
super.init()
println(NSStringFromClass(self.dynamicType))
}
}
В Swift мы больше не можем использовать "self.class".
Я хочу напечатать собственное имя класса для метода описания в подклассе NSObject.
Как я могу его распечатать? Или я должен создать новый метод для получения имени класса?
Я проверил следующий вопрос, но я не смог получить ответ.
Как напечатать тип или класс переменной в Swift?
Как узнать тип объекта (в Swift)?
import UIKit
class PrintClassName: NSObject {
override init() {
super.init()
println("\(self.dynamicType)")
// Prints "(Metatype)"
println("\(object_getClassName(self))");
// Prints "0x7b680910 (Pointer)"
println("\(self.className)")
// Compile error!
println(PrintClassName.self)
// Prints "(Metatype)"
}
}
2014.08.25 postscript
Я проверил вопрос.
Интроспекция и дженерики Swift класса
Но println(PrintClassName.self)
печатает "(Метатип)"
И я хочу получить имя класса без написания имени класса в исходном коде.
import Foundation
class PrintClassName : NSObject {
override init() {
super.init()
println(NSStringFromClass(self.dynamicType))
}
}