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网络与服务管理
    输入两个数据,如果输入数据之和为5的倍数,那么就算是输了,停止游戏;如果赢了,接着输入数据。
    switch语句
    计算一个三位数的个位,十位,百位之和
    单分支和双分支选择结构程序设计
    register变量
    static变量
    auto变量
    长双精度类型
    双精度类型变量
  • 原文地址:https://www.cnblogs.com/Stone-Yuan/p/6282153.html
Copyright © 2011-2022 走看看