Objective-C的内省方法
来源:互联网 发布:国家软件资格考试认证 编辑:程序博客网 时间:2024/05/21 17:03
方法的存在意义
OC存在一种id的类型,id就是指针,可以指向任何类型的对象。id的存在能够使得NSArray和NSDictionary这种集合类型能够很方便地容纳各种类的对象。但是编译器并不会对id的响应的方法进行检验,也就是说id类型的对象响应任何方法都不会在编译阶段-compile-报错,貌似警告也没有吧……而这种错误会在运行时-runtime-导致崩溃-crash。
所以,我们需要在运行时可以动态的检验对象是否符合相应的条件,以避免程序运行时崩溃,OC为我们提供了一些便捷的方法来进行运行时的检验。它们被定义在NSObject协议中。
方法的内容
- (BOOL)isKindOfClass:(Class)aClass;
- (BOOL)isMemberOfClass:(Class)aClass;
- (BOOL)conformsToProtocol:(Protocol *)aProtocol;
- (BOOL)respondsToSelector:(SEL)aSelector;
使用方法比较简单,从名字就可以看出(OC的方法大多都很直观)。下面简单总结下使用的场合。
方法的使用场合
愚见,凡是涉及到id的时候,都要记得考虑一下是否有进行检查的必要。
比如:
1. 从NSArray等集合中提取对象进行后续操作;
2. 所有的MVC盲通信,如目标动作、代理等。
0 0
- Objective-C的内省方法
- Objective-C的内省方法介绍
- Objective-C 的内省
- Objective-C的内省
- Objective-C的内省(Introspection)小结
- Objective-C的内省(Introspection)小结
- Objective-C的内省(Introspection)小结
- Objective-C的内省(Introspection)机制
- Objective-C的内省(Introspection)小结
- Objective-C的内省(Introspection)小结
- Objective-C 内省(Introspection)
- Objective-c 方法调用&内省机制(introspection)&selector
- NSObject的内省方法
- Objective-c 方法的调用
- Hook Objective-C 的方法
- Objective-C的方法替换
- Objective-C的方法替换
- Objective-C的方法替换
- 【java编程思想--学习笔记(二)】访问控制-Java访问权限修饰词
- POJ 1465 Multiple
- velocity模板常用语法
- HTTP长连接与短连接
- linux2.6.xx内核代码分析
- Objective-C的内省方法
- 自定义菜单的创建及菜单事件响应
- C++ 析构函数
- [Android UI]ActionBar随ScorllView上下拖动而透明度渐变效果
- 你真的懂javascript的计时器吗?
- IOS xml 与NSDictionary 互相转换
- hdu 1198 并查集
- Zookeeper的集群安装和配置
- Java练习题-求1000!的结果中包含多少个0