美文网首页
OC反射机制

OC反射机制

作者: 不简单的风度 | 来源:发表于2018-07-16 13:35 被阅读56次

概述

在计算机科学中,反射是指计算机程序在运行时(Run time)可以访问、检测和修改它本身状态或行为的一种能力。用比喻来说,反射就是程序在运行的时候能够“观察”并且修改自己的行为。布莱恩·史密斯(Brian Cantwell Smith)在1982年的博士论文《编程语言中的步骤式反射》("Procedural Reflection in Programming Languages")中介绍了“编程语言的计算反射”概念,并且引入meta-circular解释器的概念用作3-Lisp的一个组成部分。本文主要讨论OC中的反射。OC反射机制牵涉到的方法不止这么多,这里只是列出一些常用的。

基本反射

  • 获取class
[self class]
  • 根据字符串获取class
NSClassFromString(@“className”)
  • 根据字符串获取方法
NSSelectorFromString(@“method”)
  • 检查继承关系
- (BOOL)isKindOfClass:(Class)aClass
- (BOOL)isMemberOfClass:(Class)aClass
+ (BOOL)isSubclassOfClass:(Class)aClass
- (BOOL)conformsToProtocol:(Protocol *)aProtocol

高级反射

  • 消息发送
objc_msgSend(receiver, selector)
objc_msgSend(receiver, selector, arg1, arg2,...)
  • 动态绑定
objc_setAssociatedObject    objc_getAssociatedObject

总结

通过以上方法我们可以可以获取类信息、属性方法获取、类的动态加载、方法的动态调用、动态添加类和方法等。

参考

Objective-C 反射篇
OC中的runtime与Java反射机制对比

相关文章

  • Effective-OC读书笔记(1)

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

  • iOS面试题

    1、说一下OC的反射机制; OC 的反射机制以及使用场景 2、block的实质是什么?有几种block?分别是怎样...

  • 问题大全

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

  • OC反射机制

    概述 在计算机科学中,反射是指计算机程序在运行时(Run time)可以访问、检测和修改它本身状态或行为的一种能力...

  • OC反射机制

    系统Foundation框架为我们提供了一些方法反射的API,我们可以通过这些API执行将字符串转为SEL等操作。...

  • OC反射机制

    反射机制定义: 运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意...

  • 【转载】objc反射机制

    反射机制的基本概念: 找了好久oc的反射机制,只能朦胧的得到一句:跟java的反射机制相似 那么笔者就先贴上jav...

  • 第一章、底层相关

    一、谈谈OC的反射弧机制 程序可以访问、检测和修改它本身状态或行为的一种能力。OC的反射机制,即在动态运行状态下可...

  • OC中的反射机制

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

  • OC 反射弧机制

    反射弧概念 程序可以访问、检测和修改它本身状态或行为的一种能力。 OC反射弧 OC的反射机制,即在动态运行状态下可...

网友评论

      本文标题:OC反射机制

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