美文网首页iOS
iOS开发之swift命名空间

iOS开发之swift命名空间

作者: 1c7d21358574 | 来源:发表于2016-04-22 16:55 被阅读175次

    导语

    命名空间(namespace)想必对于有开发经验的同学来说不会陌生,swift里面引入了这一语言特性,这篇文章简单讲讲如何使用命名空间。

          我们可以在一个swift项目里随便打印一个控制器,然后在控制台查看打印结果,可以看到控制器前面有个前缀,这就是命名空间。有了命名空间,我们在项目里使用别的文件的使用,是不用像OC里面import的,工程里的所有文件均可资源共享。


    QQ20160422-0@2x.png

          默认情况下,命名空间名就是工程名,但是可以人为修改,所以我们在项目里使用命名空间的时候最好不要写死,进行动态获取。下面我就以使用类名字符串生成类这个场景来简述动态获取命名空间。命名空间可以通过info.plist文件里的一个key获取,那么是哪个key呢?


    QQ20160422-1@2x.png
    图中选中部分即是命名空间的信息,默认情况下,该文件里的key不以代码中使用的形式展示,比如我们获取项目名称、项目版本等信息的时候,都会使用到该文件里的key,而且一般是以CF开头,下面我们来获取代码中使用的key
    QQ20160422-0@2x.png
    QQ20160422-1@2x.png

          可以看到key的名称改了,某些key是不是有种似曾相识的感觉呢?以后如果想获取该文件中其他的key,亦可使用这种方法查找。好的,接下来我们直接上代码

    // 1、动态获取命名空间
    let nameSpace = NSBundle.mainBundle().infoDictionary!["CFBundleExecutable"] as! String
    // 2、根据命名空间拼接类名
    let cls: AnyClass? = NSClassFromString(nameSpace + "." + childVcName)
    // 3、通过类名转换成控制器类型
    let vcCls = cls as! UIViewController.Type
    // 4、创建控制器
    let childVC = vcCls.init()
    

           嗯,先写到这里,后面有新的收获会继续分享。又到周五了,一会儿下班了打篮球放松下,O(∩_∩)O哈哈~

    相关文章

      网友评论

        本文标题:iOS开发之swift命名空间

        本文链接:https://www.haomeiwen.com/subject/sbdxrttx.html