zoukankan      html  css  js  c++  java
  • 使用runtime获取属性

    在   YuansPerson 类中定义属性(在.h 和.m 中定义都可以)

    class_copyIvarList:获取类的所有属性变量,count记录变量的数量IVar是runtime声明的一个宏,是实例变量的意思,instance variable,在runtime中定义为 typedef struct objc_ivar *Ivari

    var_getName:将IVar变量转化为字符串

    ivar_getTypeEncoding:获取IVar的类型

     

     object_setIvar(<#id obj#>, <#Ivar ivar#>, <#id value#>)  :  可以强制修改原属性的值

     

     

     YuansPerson *yuansPerson = [YuansPerson new];

     

     unsigned int count = 0;

     Ivar *nameList = class_copyIvarList([YuansPerson class], &count);

        

        for (int i = 0;i < count; i ++) {

            

            Ivar var = nameList[i];

            const char *name = ivar_getName(var) ;

            const char *type = ivar_getTypeEncoding(var);

            

            NSLog(@"name = %s type = %s",name,type);

        

             

        }

        

     

     

     

     

    我是一只小鸟,但我也要飞向更高的蓝天,总有一天会长大的。
  • 相关阅读:
    Linux配置YUM源(2020最新最详细)
    Linux系统安装Tomcat9(2020最新最详细)
    Linux系统安装JDK1.8(2020最新最详细)
    框架集项目-登录账户过期,如何回到登录主页!
    C# 以管理员方式运行程序
    C#/STM32 WAV转byte WAV数据格式
    C# base64 转 byte[]
    C# 截取屏幕图像
    emWin 学习笔记 —— 用VS2017打开emWin仿真包
    STM32 时钟配置的坑
  • 原文地址:https://www.cnblogs.com/Stone-Yuan/p/6282153.html
Copyright © 2011-2022 走看看