zoukankan      html  css  js  c++  java
  • 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);
    }
    
    
    
  • 相关阅读:
    微信WeixinJSBridge API
    微信内置浏览器的JsAPI(WeixinJSBridge续)[转载]
    一套简单可依赖的Javascript库
    一款轻量级移动web开发框架
    传说中的WeixinJSBridge和微信rest接口
    点击网页分享按钮,触发微信分享功能
    Metronic前端模板
    AdminLTE前端模板
    Nginx如何配置静态文件直接访问
    架构设计流程
  • 原文地址:https://www.cnblogs.com/KrystalNa/p/4796626.html
Copyright © 2011-2022 走看看