id myObj = [[NSClassFromString(@"MySpecialClass") alloc] init];

id myObj = [[MySpecialClass alloc] init];

是一样的。但是,如果你的程序中并不存在MySpecialClass这个类,下面的写法会出错,而上面的写法只是返回一个空对象而已。

因此,在某些情况下,可以使用NSClassFromString来进行你不确定的类的初始化。

比如在iPhone中,NSTask可能就会出现这种情况,所以在你需要使用NSTask时,最好使用:

[[NSClassFromString(@"NSTask") .....]]

而不要直接使用[NSTask ...]这种写法。

NSClassFromString的好处是:

1 弱化连接,因此并不会把没有的Framework也link到程序中。

2 不需要使用import,因为类是动态加载的,只要存在就可以加载。因此如果你的toolchain中没有某个类的头文件定义,而你确信这个类是可以用的,那么也可以用这种方法。

转载于:https://www.cnblogs.com/ioslps/p/3831578.html

iOS工作笔记之NSClassFromString相关推荐

  1. IOS工作笔记(五)

    说明:记录下学习IOS的一些琐碎,有些在现在看起来很简单幼稚,不过权当学习足迹吧! 1.frame的打印,可以用 NSLog(@"%@",NSStringFromCGRect(se ...

  2. IOS工作笔记002---windows给VmWare虚拟机OS系统安装VMTools

    技术交流QQ群[JAVA,C,.NET,BigData,AI]:170933152 我没弄那么麻烦,首先关闭ios虚拟机,然后再CD/DVD那里选择找到darwin.iso就可以了,这个文件一般在VM ...

  3. IOS工作笔记001---windows下安装通过VmWare来安装IOS系统_并连接上网_来吧超级详细

    技术交流QQ群[JAVA,C,.NET,BigData,AI]:170933152 想做IOS开发,几年前,学Android的时候,就想把IOS一块给学了,但是没有苹果本啊 ,现在又开始想弄了 来做个 ...

  4. iOS工作笔记(十二)

    1.从ControllerA跳往照相UIImagePickerController,只能用presentViewController形式,因为定义UIImagePickerController时, U ...

  5. IOS工作笔记003---windows给VmWare虚拟机OS系统安装xcode

    技术交流QQ群[JAVA,C,.NET,BigData,AI]:170933152 这个xcode的安装真是麻烦,我首先安装的时候,MAC os系统是10.12.6(查看版本,可以在系统的左上角,有个 ...

  6. 苹果ios开发一年的工作笔记

    苹果ios开发一年的工作笔记 退回输入键盘 - (BOOL) textFieldShouldReturn:(id)textField{ [textField resignFirstResponder] ...

  7. iOS回顾笔记( 01 )-- XIB和纯代码创建应用的对比

    iOS回顾笔记( 01 )--  XIB和纯代码创建应用的对比 很多时候我们工作很久突然闲下来的时候,是不是也感到无聊过?这就是我现在的生活,不过闲一段时间也挺好,可以好好回顾一下自己以前学习iOS路 ...

  8. IOS学习笔记03---C语言概述

    IOS学习笔记03---C语言概述 0 3.C语言1-C语言概述         qq交流群:创梦技术交流群:251572072                        创梦网络赚钱群:2483 ...

  9. 工作笔记:TrueCrypt编译记录

    工作笔记:TrueCrypt编译记录 TrueCrypt的最新版本6.2可以从官方网站上下载,我从这里下载了一个6.1的 http://freedos.pri.ee/truecrypt/ 在TrueC ...

最新文章

  1. 利用Python自动生成暴力破解的字典
  2. Xshell 连接报错解决:WARNING! The remote SSH server rejected X11 forwarding request.
  3. 深度学习目标检测系列:RCNN系列算法图解
  4. excel判断字符串包含另一个字符串_【前端冷知识】如何正确判断一个字符串是数值?...
  5. Commit request failed Commit failed. Ref must be HEAD and is HEAD
  6. Android零基础入门第64节:揭开RecyclerView庐山真面目
  7. 机器学习第六回——降维+异常检测
  8. bzoj 3196二逼平衡树 线段树套平衡树
  9. Hibernate关系映射(三) 多对一和一对多
  10. paip.ecshop邮件模板修改一个密码找回 一个留言回复
  11. (解决中文标签无法显示问题)Networkx绘制《清明上河图密码》主要人物社交关系网络图
  12. 物联网通信技术课程安排
  13. 【大数据】一图了解大数据发展历程
  14. 2021年危险化学品生产单位安全生产管理人员新版试题及危险化学品生产单位安全生产管理人员找解析
  15. Java在线教育项目 第四天文章搜索前后端成形记 实名认证审核
  16. 微信公众号推广分享二维码,关联扫码关注的客户
  17. 类的加载、连接和初始化
  18. java 虚拟机(jvm)-06-JVM jdk 自带工具 jstack jconsole jvisualvm jmap jinfo
  19. 前端三剑客之HTML
  20. 如何使用MATLAB生成一个FIR低通滤波器?

热门文章

  1. Makefile中几种赋值
  2. Node --- Basic认证
  3. Istio流量管理实践之(5): 使用cert-manager部署Istio自定义入口网关及进行证书管理...
  4. 方程式漏洞之复现window2008/win7 远程命令执行漏洞
  5. Oracle存储过程 使用游标、数组的配合查询
  6. PHP的session阻塞问题
  7. 编译选项—微软官方+各地总结
  8. C#:RichTextBox 追加其它颜色的行列
  9. IplImage, CvMat, Mat 的关系和相互转换 再次理解 /(ㄒoㄒ)/~~
  10. 计算机网络犯罪和一般犯罪的不同,论计算机网络犯罪题稿.doc