class_copyPropertyList\class_copyIvarList

class_copyPropertyList返回的仅仅是对象类的属性(@property申明的属性),而class_copyIvarList返回类的所有属性和变量(包括在@interface大括号中声明的变量),下面做个简单的测试。首先,定义一个WFrequencyManager类

class_copyPropertyList\class_copyIvarList
文章图片
然后在测试类中写一个测试函数testProperties调用上述两个函数得到其返回结果再分别依次遍历输出其返回值
class_copyPropertyList\class_copyIvarList
文章图片
【class_copyPropertyList\class_copyIvarList】执行上述测试函数后在控制台输出结果为:
class_copyPropertyList\class_copyIvarList
文章图片
从上述执行结果可以很好的说明前者只获取由@property声明的属性,而后者不但获取了@property属性,而且还获取了@interface大括号中声明的变量

    推荐阅读