Swift 中的一些比较实用的代码片段

2017-11-09  本文已影响17人  结局怎么写

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中修改新的值。


屏幕快照 2019-01-14 下午4.44.49.png

持续更新...

上一篇 下一篇

猜你喜欢

热点阅读