加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

swift知识点--反射

发布时间:2020-12-14 05:56:04 所属栏目:百科 来源:网络整理
导读:反射创建对象和方法 class TestSW: NSObject { override required init () { print ( "init333333" ) } @objc func test(){ print ( "000" ) } @objc func test11(from: String ){ print ( "111" ) } } 反射方法: //反射创建对象 let module = Bundle . mai

反射创建对象和方法

class TestSW: NSObject {

override required init() {

print("init333333")

}

@objc func test(){

print("000")

}

@objc func test11(from:String){

print("111")

}

}


反射方法:

//反射创建对象

let module = Bundle.main.infoDictionary!["CFBundleExecutable"] as! String

let sw = NSClassFromString(module + ".TestSW") as! TestSW.Type;

let testSWModel = sw.init() //必须含有init方法

//被反射的方法需要在方法前面添加 @objc 修饰,可用以下方法反射

let methodSelector = NSSelectorFromString("test")

// let methodSelector = #selector(TestSW.test11(from:))

// let methodSelector = NSSelectorFromString("test11From:" )


testSWModel.perform(methodSelector)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读