• Xcode开发--运行时runtime


    运行时(runtime)

    什么是运行时?

    • 运行时是苹果提供的纯C语言的开发库

    运行时的作用

    • 能获得某个类的所有成员变量
    • 能获得某个类的所有属性
    • 能获得某个类的所有方法
    • 交换方法实现
    • 能动态添加一个成员变量
    • 能动态添加一个属性
    • 能动态添加一个方法

    运行时实例

    应用1:打印某个类的所有成员变量(实例变量)--class_ copy_IvarList()

    函数说明:

    • 需要添加#import < objc/runtime.h >
    • I -> Instance->实例变量即成员变量
    • var ->variable->变量
    • 如果函数名中包含了copy ew etaincreate 那么这个函数返回的数据就需要手动释放
    #import <objc/runtime.h>
    
    - (void)example
    {
    	 //成员变量的数量
            unsigned int outCount = 0;
            
            //获得所有的成员变量
            //ivas是一个指向成员变量的指针
            //默认指向第0个成员变量(最前面)
            Ivar *ivars =  class_copyIvarList([UITextField class], &outCount);
            
            //一个Ivar就代表一个成员变量(Instancec variable)
            //遍历所有的成员变量
            for (int i = 0; i < outCount; i++) {
                //取出i位置对应的成员变量
                Ivar ivar = *(ivars + i); //==ivars[i]
                //C语言允许,指向第0个成员变量的指针可以用数组方式访问
                //Ivar ivar = ivars[i];
                //获得成员变量的名字
                NSLog(@"%s",ivar_getName(ivar));
            }
            
            //如果函数名中包含了copy
    ew
    etaincreate 那么这个函数返回的数据就需要手动释放
            free(ivars);
    }
    
    
    
  • 相关阅读:
    CSS 使DIV居中
    jsonlib 使用 转换JSON
    jquery autocomplete 自动完成 使用
    Sql server 实用技巧总结
    MvcHtml.DropDownList()用法
    日期时间正则表达式
    ASP.NET使用log4Net日志组件教程(每天产生一个日志及日志按大小切割)
    MvcHtml.ActionLink()用法
    给学弟的bitset使用整理
    2021 CCPC 广州站
  • 原文地址:https://www.cnblogs.com/KrystalNa/p/4796626.html
Copyright © 2020-2023  润新知