IOS提供了3种内省方法

  • isKindOfClass

检查当前实例是否为某类及其子类

     UIView *b = [UIView new];
//... id a = b; if ([a isMemberOfClass:[UIView class]]) {
UIView *view = (UIView *)a;//强制转换
//利用UIView的方法...
} if ([a isKindOfClass:[UIView class]]) { }
  • isMemberOfClass

检查当前实例是否为某类(不包括子类)

类似于isKindOfClass

  • respondsToSelector

检查当前实例是否能对指定选择子做出响应,即是否存在指定函数

常用于检测委托是否实现了委托方法

     id<xxxdelegate> a;

     if ([a respondsToSelector:@selector(delegateFun:)])
{
[a delegateFun:param1 Param:param2];
}

最新文章

  1. POJ3114 Countries in War (强连通分量 + 缩点 + 最短路径 + 好题)
  2. 20145320《Java程序设计》第一次实验报告
  3. centos下pip安装mysql_python
  4. Eclipse调试Java的十个技巧
  5. jQuery需要掌握的技巧
  6. 使用Windbg和SoS扩展调试分析.NET程序
  7. spring-boot 整合redis作为数据缓存
  8. Update Statistics用法
  9. bugku web 头等舱
  10. js bind0
  11. String StringBuilder 包装类
  12. JDBC driver for MySQL连接提示&quot;The connection property &#39;zeroDateTimeBehavior&#39; acceptable values are: &#39;CONVERT_TO_NULL&#39;, &#39;EXCEPTION&#39; or &#39;ROUND&#39;. The value &#39;convertToNull&#39; is not acceptable.&quot;解决方案
  13. 蓝牙协议分析(8)_BLE安全机制之白名单
  14. kali安装Google浏览器之后的问题
  15. 笔记:mysql升序排列asc,降序排列desc
  16. 分享:三种取消选中单选框radio的方法
  17. sql 变量赋值
  18. 简单AOP
  19. 《Real Time Rendering》第四章 图形变换
  20. java的初始化(编程思想)

热门文章

  1. DOCKER SNAT与DNAT
  2. Nexus-配置vPC 实验三
  3. Nexus-vPC与FHRP
  4. MQTT Web Toolkit - MQTT 在线客户端及服务器测试
  5. Java 1.8 红黑树
  6. from flyai.dataset import Dataset 报错
  7. 误删/boot下文件或目录的修复方式!
  8. CSS三列自适应布局(两边宽度固定,中间自适应)
  9. Python开发:变量类型
  10. jquery移除click事件