NSObject常用方法和反射

NSObject常用方法

  • - (BOOL)isKindOfClass:(Class)aClass //判断是否为aClass或者aClass的子类的实例,aClass可以通过[类名 class]获取
  • - (BOOL)isMemberOfClass:(Class)aClass //判断是否为aClass的实例(不包括aClass的子类)
  • - (BOOL)conformsToProtocol:(Protocol)aProtocol //判断对象是否实现了aProtocol协议
  • + (BOOL)instancesRespondToSelector:(SEL)aSelector //判断这个类的对象是否拥有参数提供的方法aSelector
  • - (BOOL)respondsToSelector:(SEL)aSelector //判断对象是否拥有参数提供的方法aSelector
  • - (void)performSelector:(SEL)aSelector withObject:(id)anArgument afterDelay:(NSTimeInterval)delay //延迟调用参数提供的方法,方法所需参数用withObject传入

反射

  • Class的反射

  通过类名的字符串形式实例化对象

  Class class = NSClassFromString(@"Student");

  Student *stu = [[class alloc] init];

  将类名变成字符串

  Class class = [Student class];

  NSString *className = NSStringFromClass(class);

  • SEL的反射

  通过方法的字符串形式实例化方法

  SEL selector = NSSelectorFromString(@"setName:");

  [stu performSelector:selector withObject:@"Mike"];

  将方法变成字符串

  NSStringFromSelector(@selector(setName:));

NSObject常用方法和反射

时间: 2024-08-04 20:03:27

NSObject常用方法和反射的相关文章

Objective-C - NSObject常用方法

NSObject常用方法 //用来判断对象中是否实现了某个方法(被封装在一个selector的对象里传递) -(BOOL) respondsToSelector: selector //用来判断对象中是否实现了某个方法. 和上面一个不同之处在于, 前面这个方法可以用在实例上,而此方法用在类上. +(BOOL) instancesRespondToSelector: selector -(id) performSelector: selector - (id)performSelector:(SE

iOS-OC-基础-NSObject常用方法

1 Person *person1 = [[Person alloc]init]; 2 Person *person2 = [[Person alloc]init]; 3 4 // 可以调用类中的私有方法,但是会有一个警告 5 [person1 performSelector:@selector(actionTow)]; 6 [person1 performSelector:@selector(actionOne:) withObject:@"test"]; 7 8 NSLog(@&q

ios 反射机制

// Created  By   郭仔  2015年04月11日17:13:22 NSObject常用方法: ======================================================================= OC反射机制:

ObjectC----NSObject常用方法和OC反射机制

NSObject常用方法: ======================================================================= OC反射机制:

NSNumber、NSValue、NSDate、NSObject

注:OC中数组和字典只能存储OC对象不能存放基本数据类型. NSNumber NSNumber可以用来把一个基本数据类型包装成一个NSNumber类型的对象. NSNumber *number = [NSNumber numberWithInt:10]; // 将int类型的10 包装成一个NSNumber对象. NSLog(@"number=%@", number);//NSNumber类型对象可以当作字符串直接输出. NSMutableArray *array = [NSMutab

【Unity|C#】基础篇(12)——反射(Reflection)(核心类:Type、Assembly)

[学习资料] <C#图解教程>(第24章):https://www.cnblogs.com/moonache/p/7687551.html 电子书下载:https://pan.baidu.com/s/1mhOmBG0 [内容] 对以下文章的整合: 详解C#中的反射(主要参考):https://www.cnblogs.com/jiangyunfeng/p/10436520.html C#反射机制                       :https://zhuanlan.zhihu.com/

OC常用数据类型大全解

UI基础 OC常用数据类型 Block Block封装了一段代码,可以在任何时候执行 Block可以作为函数参数或者函数的返回值,而其本身又可以带输入参数或返回值.它和传统的函数指针很类似,但是有区别:block是inline(内联函数)的,并且默认情况下它对局部变量是只读的 苹果官方建议尽量多用block.在多线程.异步任务.集合遍历.集合排序.动画转场用的很多 Blocks的定义 Blocks的定义: int (^MySum)(int, int) = ^(int a, int b) { re

黑马程序员-JAVA学习之反射以及Class类的常用方法

--------android培训.java培训.期待与你交流!-------- Class类 Class 类的实例表示正在运行的 Java 应用程序中的类和接口.枚举是一种类,注释是一种接口.每个数组属于被映射为 Class 对象的一个类,所有具有相同元素类型和维数的数组都共享该 Class 对象.基本的 Java 类型(boolean.byte.char.short.int.long.float 和 double)和关键字 void 也表示为 Class 对象. Class 没有公共构造方法

NSObject和反射2

NSObject和反射2. commend +R  run id stu=[Student student]; // –>   Student *stu=[Student student]; :也是方法名的一部分 主要是反射:reflect 根据字符串来实例化一个对象 //#pragma mark reflect according to class name void reflect(){ NSString *[email protected]"Person"; Class c