1、 _cmd 在swift中的怎么表示
_cmd
在swift4 中用#function
代替
例如
@objc func onButtonAction(button:UIButton) {
print(#function)
}
输出:onButtonAction(button:)
2、 NSClassFromString 在Swift中的用法
//首先要得到BundleName,一般情况就是工程名
//然后用 [CFBundleExecutable.类名]拼接成字符串,再用NSClassFromString方法即可得到目标类
//再用得到的目标class 初始化就可以了.
let bundleName = Bundle.main.object(forInfoDictionaryKey: "CFBundleExecutable")
let className = "XXDetailViewControll"
let targetClassName = "\(bundleName!).\(title)"
let class = NSClassFromString(className) as! UIViewController.Type
let detailViewController = class.init()
self.navigationController?.pushViewController(detailViewController, animated: true)
注意:bundleName不能含有中文 ,不能以数字开头,不能有-,不要带有swift 否则会出现奇怪的问题,或者以类名创建类(NSClassFromString)的时候会返回nil
当bundleName不符合规则时,请在Bulid Setting中修改新的值。

持续更新...
网友评论