【转载】objc反射机制

2019-03-03  本文已影响0人  学呀学呀总得学会了吧

反射机制的基本概念:

找了好久oc的反射机制,只能朦胧的得到一句:跟java的反射机制相似

那么笔者就先贴上java语言的反射机制基本概念:在运行状态下,对于任意一个类,都能够知道这个类的所有属性和方法,对于任意一个对象,都能调用它的任意一个方法,这种动态获取信息,以及动态调用对象方法的功能叫java语言的反射机制;

那么oc语言的反射机制与之类似是什么样的呢:在oc语言的反射机制跟java反射机制很相似,在oc中所有oc对象都继承NSObject类,这个类为我们提供了基础的方法和协议,我们可以直接调用这个类继承过来的方法,这个对象的基本信息,这大概就是oc语言的反射机制;

现在基本有了反射机制的概念,我们平时开发过程中都怎么利用这种机制呢?

反射机制的运用

1.获取Class对象

Class对象其实本质上是一个结构体,这个结构体的成员变量还是他自己。

在开发过程中难免会碰到要判断两个对象是否同属一个类,我们可以调用他们的Class方法获取类对象比如:

2.利用反射方法

系统Foundation框架为我们提供了一些方法反射的API,由于oc语言的动态性,这些操作可以发生在运行时的。

通过以上方法,我们可以将字符串与同名的oc对象动态的相互转化;

3.常用判断方法

在NSObject类中我们提供一些基础方法,用来做一些判断操作,这些方法都是发生在运行时动态判断的。

利用这些判断方法,可以动态的判断一个对象是否有符合一些条件;例如是否是某个类是否是某个类的实例等。


此文为转发用于记录总结 ,感谢大神们的总结分享。

转自这儿

上一篇下一篇

猜你喜欢

热点阅读