在swift里面通过类名来创建类
anyClass 是一个协议 并不是一个类 所以并不能给anyClass 或者 anyObject 写延展 加方法
尝试用Runtime来动态创建类
/// 通过创建一个类
let newClass = objc_allocateClassPair(NSObject.classForCoder(), "MyClass", 0)
// 给类增加一个方法
method_getImplementation(class_getInstanceMethod(self.classForCoder, Selector("report")))
class_addMethod(newClass, Selector("report"), method_getImplementation(class_getInstanceMethod(self.classForCoder, Selector("report"))) , "v@:")
//注册这个类
objc_registerClassPair(newClass)
这样虽然可以创建了类 但是还是无法实例化
网上搜到了方法 用继承实现
class MyClass: NSObject {
var member = 10
override required init() {
print("init")
}
}
创建如下
let className = NSStringFromClass(MyClass)
print(className)
let classType = NSClassFromString(className) as? MyClass.Type
if let type = classType {
let my = type.init()
print(my.member)
}
虽然是动态创建,但是其必须使用继承,不知哪位大神知晓如何不用继承来实现动态生成类实例