iOS 反射操作
Posted HeathHsia
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS 反射操作相关的知识,希望对你有一定的参考价值。
1. 判断一个对象是否为某种类型:(父类也会返回YES)
isKindOfClass:[NSObject class]
2. 判断一个对象是否是某个类的实例化对象 (父类不会返回YES)
isMemberOfClass:[NSObject class]
3. 判断是否实现了某个协议
conformsToProtocol:@protocol(NSCopying)
4.判断是否存在某个方法(能否响应此方法)
respondsToSelector:@selector(showMessage:)
动态生成一个类
5. 根据类名生成一个类
NSString *className=@"Person"; Class myClass=NSClassFromString(className)
可以用 myClass 初始化Person对象
Person *person2=[[myClass alloc]init]
6. 类型转化成字符串
NSStringFromClass(myClass),NSStringFromClass([Person class]
7. 根据方法名字符串, 调用方法
NSString *methodName=@"showMessage:" // 方法名字符串
SEL mySelector=NSSelectorFromString(methodName); // 根据方法名字符串 创建SEL对象
performSelector:mySelector withObject:@"Hello,world!" // 执行方法8. 方法转化为字符串
NSStringFromSelector(mySelector)
以上是关于iOS 反射操作的主要内容,如果未能解决你的问题,请参考以下文章
iOS开发-Swift进阶之反射Mirror & 错误处理!