文档章节

iOS NSClassFromString,NSSelectorFromString,isKingO

法斗斗
 法斗斗
发布于 2016/03/01 17:33
字数 305
阅读 98
收藏 0

iOS NSClassFromString,NSSelectorFromString,isKingOfClass

1. NSClassFromString

  这个方法判断类是否存在,如果存在就动态加载的,不存为就返回一个空对象;

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

  正常情况下等价于:

id myObj = [[MySpecialClass alloc] init];

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

  优点:

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

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

 

2. NSSelectorFromString

  这个方法是上个方法的补充,也是动态加载实例方法。

  SEL sel = NSSelectorFromString(@"doSomethingMethod:")//注意这个冒号,说明方法带有参数

  if([object respondsToSelector:sel]) { 

      [object performSelector:sel withObject:color]; //注意如果有两个参数,使用两个withObject:参数;

  }

3. isKindOfClass

  isKindOfClass 我们也可以使用isKindOfClass来检查一个对象是否是一个类的成员


4. isMemberOfClass

  isMemberOfClass方法是来确定对象是否是某一个类的成员

本文转载自:

法斗斗
粉丝 22
博文 368
码字总数 17774
作品 0
杨浦
程序员
私信 提问
学习IOS编程必须要知道的一些知识

1.首先要先了解main( )函数,函数有四个参数,argc ,argv,程序主要类 ,代理类 2.plist 、xml 格式文件通常用于储存用户设置 3. pch 预编译文件头 4. xib nterface Builder 图形设计界面(...

青云_K
2013/01/18
0
1
2018 iOS 面试题大全(补充完整版)

原文地址:2018 iOS 面试题大全 由于原作者并没有继续更新,这里我转过来继续更新下 这个栏目将持续更新--请iOS的小伙伴关注! 1、iOS 应用导航模式有哪些? 2、iOS 中持久化方式有哪些? 3、...

Theendisthebegi
2018/11/15
0
0
ios NSClassFromString 返回空指针

原文地址:http://my.oschina.net/meiguizhinian/blog/476783 今天新建了一个 iOS 新工程,用到了 NSClassFromString 方法创建类, 无奈总是返回空指针. 花了一下午时间检查代码是否有写错,配置...

倾盆大雨
2015/07/09
0
0
苹果发布 iOS 9.2 正式版:多项功能增强、改进

除了发布 OS X 10.11.2 和 tvOS 9.1 正式版外,苹果今天还发布了 iOS 9.2 正式版。iOS 9.2 是自 iOS 9 在今年9月发布之后的第二次重大版本更新。iOS 9.2 测试开始于10月底,开发者和公测用户...

oschina
2015/12/09
3.8K
22
IOS学习,最简单的表格应用程序,学习,列出博客

IOS编程浅蓝教程,这是博客地址http://www.cnblogs.com/haichao/category/425378.html IOS编程浅蓝教程:锲子 IOS编程浅蓝教程(一)先决条件:开始iOS编程的必要准备 IOS编程浅蓝教程(二) Hel...

andy521zhu
2015/01/17
0
0

没有更多内容

加载失败,请刷新页面

加载更多

4.01、Linux异常

1、无法连接虚拟设备ide1:0,因为主机上没有响应的设备 解决方法:找到“虚拟机” —— 打开“虚拟机设置” —— 单击“CD/DVD(IDE)”,右侧选中“使用ISO映像文件”,然后选中自己的镜像,重启...

静以修身2025
16分钟前
0
0
不允许有匹配 "[xX][mM][lL]" 的处理指令目标

Bug解决方案:org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 8; 不允许有匹配 "[xX][mM][lL]" 的处理指令目标 Caused by: org.xml.sax.SAXParseException; lineNumber: 1; c......

我叫小糖主
19分钟前
0
0
Mysql InnoDB 行锁和表锁介绍

mysql 的 InnoDB引擎支持行锁,与Oracle不同,mysql的行锁是通过索引加载的,即是行锁是加在索引响应的行上的,要是对应的SQL语句没有走索引,则会全表扫描,行锁则无法实现,取而代之的是表...

嘴角轻扬30
19分钟前
1
0
springboot+jpa 错误信息org.springframework.beans.factory.BeanCreationException

报错信息 org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/a......

冥焱
37分钟前
1
0
威胁快报|新兴挖矿团伙借助shodan作恶,非web应用安全再鸣警钟

近日,阿里云安全发现了一个使用未授权访问漏洞部署恶意Docker镜像进行挖矿的僵尸网络团伙。我们给这一团伙取名为Xulu,因为该团伙使用这个字符串作为挖矿时的用户名。 Xulu并不是第一个攻击...

迷你芊宝宝
44分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部