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

Swift获取命名空间(namespace),动态加载类

发布时间:2020-12-14 07:22:31 所属栏目:百科 来源:网络整理
导读:1. tips 1.1在swift中,类名的组成格式是 namespace.类名.比如我们在任意一个控制器的viewDidLoad()方法中打印self,打印结果是: 打印结果.png - 这儿的 `Test` 就是namespace,默认的就是项目名. 1.2. namespace默认是项目名称,同一个命名空间全局共享 2.怎么

1. tips

  • 1.1在swift中,类名的组成格式是 namespace.类名.比如我们在任意一个控制器的viewDidLoad()方法中打印self,打印结果是:

打印结果.png
- 这儿的`Test`就是namespace,默认的就是项目名.
  • 1.2. namespace默认是项目名称,同一个命名空间全局共享

2.怎么查看namespace

  • namespace在info.plist 对应的是 CFBundleExecutable,我们可以在info.plist中任意右击一行,选中Show Raw Keys/Values查看真实的key,如图
查看CFBundleExecutable.png

3.如何修改namespace

  • 如果新建项目时,项目名称中包含有中文,可以进入是Build Settings中选中"All",搜索product name,即可修改,如图:
修改命名空间.png
- 这儿一定要记住:新改的名字不能含有`中文`,不能以`数字`开头,不能有`-`

4.如何代码获取命名空间名称,并创建相应的类

// 从info.plist读取namespace
let namespace = NSBundle.mainBundle().infoDictionary!["CFBundleExecutable"] as! String
// 拼接类名的完整格式,即namespace.类名,vcName即控制器的类名
let clsName = namespace + "." + vcName
let cls: AnyClass = NSClassFromString(clsName)!
// 得到相应的控制器
let vc = cls.alloc() as! UITableViewController

(编辑:李大同)

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

    推荐文章
      热点阅读