OC中的反射

作者: LY2528 | 来源:发表于2016-12-07 10:31 被阅读0次

OC中的反射

  • OC的反射是基于其Runtime实现的,一般表现在字符串和Class转换,字符串和内部方法转换,字符串和属性的转换(取值和赋值)
    • 字符串和Class转换

      • 通过类名的字符串形式实例化对象
          // 返回一个类对象
       Class class = NSClassFromString(@"Person"); //类名的字符串
       Person *p1 = [[class alloc] init];
      
      • 将类名转换为字符串
          Class class = [Person class];
          NSString *classString = NSStringFromClass(class);
      
    • 字符串和内部方法转换(SEL)

      • 通过方法的字符串形式实例化方法
          SEL sel = NSSelectorFromString(@"eat");
          if ([p1 respondsToSelector:sel]) {
          
              [p1 performSelector:sel];
          }
      
      • 将方法变为字符串
          NSString *methodString = NSStringFromSelector(@selector(eat));
      
    • 字符串和属性的转换

      • OC中属性的反射通过KVC(Key-Value Coding)机制实现,KVC是一种间接访问对象属性的机制,不直接调用getter 和 setter方法,而使用valueForKey 来替代getter 方法,setValue:forKey来代替setter方法。

相关文章

  • OC中的反射

    OC中的反射 OC的反射是基于其Runtime实现的,一般表现在字符串和Class转换,字符串和内部方法转换,字符...

  • Effective-OC读书笔记(1)

    针对于这几天在读effective-oc相关书籍,笔者基于OC基础做一些总结 1、反射机制 OC中的反射机制 体现...

  • OC中的反射机制

    你是否接触过OC中的反射机制?简单聊一下概念和使用1). class反射 2). SEL的反射

  • OC中的反射机制

    不能将 swift 中的自定义类进行反射,系统的类可以 class反射 过类名的字符串形式实例化对象 类名变为字符...

  • OC中的反射机制

    1). class反射 通过类名的字符串形式实例化对象。Class class = NSClassFromStri...

  • OC中的反射机制

    简单聊一下概念和使用 1). class反射 通过类名的字符串形式实例化对象。 Class class = NSC...

  • OC中的反射机制

    class反射 通过类名的字符串形式实例化对象 Class class NSClassFromString@(@"...

  • 问题大全

    1.说一下OC的反射机制 所有的oc 对象都是继承于nsobject nsobject 提供了如下反射方法反射方...

  • swift 通过NSClassFromString初始化控制器

    在OC中我们反射是这样的:[[NSClassFromString(@"Foo") alloc] init];这样就...

  • 使用反射重构代码(OC)

    前沿 OC里的runtime就是Java里反射的概念。关于OC中runtime的应用早就被玩烂了, 今天介绍关于用...

网友评论

    本文标题:OC中的反射

    本文链接:https://www.haomeiwen.com/subject/wfedmttx.html