当前位置: 首页 > news >正文

Swift的NSClassFromString转换

在swift 中使用NSClassFromString 从string 转换到 对象,报了Segmentation fault: 11 错误。

let ctrlClass: AnyClass = NSClassFromString("HomeViewController")!
let ctrl: UIViewController = ctrlClass.init() as UIViewController

正确的写法:

let bundleName = Bundle.main.object(forInfoDictionaryKey: "CFBundleName") as? String
let ctrlClass = NSClassFromString(bundleName+".HomeViewController") as! UIViewController.Type;
let ctrl: UIViewController = ctrlClass.init()

NSClassFromString 在Swift中的参数不只是一个单独的类名,而是一个完整的包名加类名组成的字符串,否则会报错:

Thread 1: Fatal error: Unexpectedly found nil while unwrapping an Optional value

 

http://www.lryc.cn/news/152462.html

相关文章:

  • linux上vim编辑器设置
  • SpringCloudAlibaba OpenFeign整合及详解
  • Mysql--技术文档--MVCC(Multi-Version Concurrency Control | 多版本并发控制)
  • 全网都在用的nnUNet V2版本改进了啥,怎么安装?(一)
  • iOS开发Swift-4-IBAction,group,音乐播放器-木琴App
  • 【linux】pid 文件的作用ing
  • K8s简介之什么是K8s
  • 说说Flink双流join
  • I2C与I3C的对比
  • 睿趣科技:抖音开小店大概多久可以做起来
  • CCF-CSP 26次 第三题【角色授权】
  • Ansible学习笔记11
  • Vue中如何为Echarts统计图设置数据
  • 力扣141. 环形链表
  • 4.1 链式栈StackT
  • 算法练习(10):牛客在线编程10 贪心算法
  • Java8新特性1——函数式接口lambda表达式
  • 文本标注技术方案(NLP标注工具)
  • 03-使用一个不可变对象作为key,红黑树怎么比较大小?
  • 2021江苏省赛热身赛 C Magic Rabbit(数形结合)
  • AES加密(2):AES代码实现解析
  • SpringBoot项目通过分词器生成词云
  • Nacos 配置管理及相关使用
  • 重发布与路由策略
  • 57. 插入区间(C++题解)
  • 【数据结构Java版】 初识泛型和包装类
  • Spring中如何解决循环依赖问题的三种方法
  • 【ArcGIS Pro二次开发】(65):进出平衡SHP转TXT、TXT转SHP
  • Shell开发实践:服务器的磁盘、CPU、内存的占用监控
  • 超详细 async和await 项目实战运用(附加文字解答+源码)