美文网首页
Swift中根据字符串创建类型

Swift中根据字符串创建类型

作者: 4939370a5d29 | 来源:发表于2016-11-24 16:05 被阅读113次

今天项目中需要用Swift根据字符串创建类型,上网找了半天所有文章都告诉我和Objective-C不太一样,需要命名空间,下面这样子


let className = "NewClass"

//1.获取命名空间

let nameSpace  =Bundle.main.infoDictionary!["CFBundleExecutable"]

guard let ns = nameSpaceas?Stringelse{

return

}

//2.根据字符串获取完整的类名,再调用NSClassFromString方法

let newClass:AnyClass? =NSClassFromString(ns+"."+className)

guard let newClassType = newClassas ? UIViewController.Typeelse{

return

}

//3.根据创建的类型,进行实例化

let vc = newClassType.init()

然而,试了N多次,都没有成功创建出类型来

后来灵机一动,试试完全按照Objective-C来:


let className = "NewClass"

guard let newClassType = NSClassFromString(className) as? UIViewController.Type else {

return

}

let vc = newClassType.init()

竟然成功了!竟然成功了!竟然成功了!

半下午找问题所在,竟然是这样的,我只想说真是大坑

后来想想,可能是我现在用的Swift3.0,也许3.0以前是上面那样的,后来改了,不过总算解决了

相关文章

  • Swift中根据字符串创建类型

    今天项目中需要用Swift根据字符串创建类型,上网找了半天所有文章都告诉我和Objective-C不太一样,需要命...

  • iOS swift-字符串

    OC和Swift中字符串的区别 在OC中字符串类型时NSString,在Swift中字符串类型是String OC...

  • Swift 3.x(字符串,数组,字典,元组,可选类型)

    Swift 字符串介绍 OC和Swift中字符串的区别 OC中字符串类型是NSString ,在Swift...

  • Swift--字符串--02

    字符串基础 字符串在OC与Swift中的区别:在OC中字符串类型是NNString,在Swift中字符串类型是St...

  • Swift笔记<三>字符串

    1.字符串的基本使用 OC与Swift中字符串的区别OC中字符串类型是NSString,Swift中字符串类型是S...

  • 10.Swift中字符串的使用

    OC和swift中字符串的区别: 1.在OC中字符串的类型是NSString,swift中字符串的类型是Strin...

  • swift学习之基础语法一

    log打印 字符串 1、swift的字符串是结构体类型的 1、字符串的创建 数组 1、swift数组通过var/l...

  • Swift3.0字符串和字符(Strings and Chara

    Swift中String代表字符串类型。Swift中的"String"类型无缝桥接了Foundation框架中的"...

  • Swift Tips(持续更新)

    通过字符串创建类对象 在swift中打印对象时,会发现在类型前面总会有命名空间 +.+ 类名; 在swift中用字...

  • Swift第二课

    一.字符串 在OC中字符串类型是NSString,在swift中字符串类型是String OC中字符串@"",sw...

网友评论

      本文标题:Swift中根据字符串创建类型

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