现在主流的编程语言都是面向对象的(什么?,C在Tobie语言排行榜中依然占据前三名,额...我们继续),因此程序在运行环境中都是将数据组装成对象,使用时候要获取或者设置对象的属性,调用对象的方法等等,诸如此类。不过如果要是一个未知类型的对象我们该如何获取它的属性和方法呢?这个在不同语言中有着不同的实现方式,C/C++中当然全部是指针,python中更是简单的要命,一个dir()全部搞定,那么Objc中有什么方法呢?嗯,有一个很有用不过并不是很经常使用的库可以帮我们解决这个事情,那就是<objc/runtime.h>。这里我们可以使用一个例子来展示如何使用objc的runtime将一个对象序列化成dictionary。
首先我们创建一个简单的类Person
可以看到这里共有5个属性,分别为int,float和NSString三个类型,我们需要将五个属性三个类型都封装进一个dictionary中,第一步是获取Person的属性列表,使用的方法是class_copyPropertyList(Class,