class_copyIvarList与class_copyPropertyList的区别

最近在做汉字转拼音的功能,需要从Model中获取某个属性的值,然后转换为拼音,需要用到runtime的知识。

在这之中发现class_copyIvarListclass_copyPropertyList功能类似,于是做一个总结.

上测试代码

  • .h文件


    image.png
  • .m文件


    image.png
  • 代码


    image.png

总结:

1.class_copyIvarList:能够获取.h和.m中的所有属性以及大括号中声明的变量,获取的属性名称有下划线(大括号中的除外)。

2.class_copyPropertyList:只能获取由property声明的属性,包括.m中的,获取的属性名称不带下划线。

3.OC中没有真正的私有属性。

你可能感兴趣的:(class_copyIvarList与class_copyPropertyList的区别)