iOS--RunTime运行时

原创 2016年08月29日 16:30:01

1.给分类增添成员变量

#import "ViewController.h"
#import <objc/message.h>
@implementation ViewController(UIButton)

static double HeightKey;

- (void)setHeight:(double)height {
    objc_setAssociatedObject(self, &HeightKey, @(height), OBJC_ASSOCIATION_ASSIGN);
}

- (double)height {
    return [objc_getAssociatedObject(self, &HeightKey) doubleValue];
}

@end

2.遍历一个类的所有成员变量

#import <UIKit/UIKit.h>
#import "AppDelegate.h"
#import "Person.h"
#import <objc/runtime.h>
int main(int argc, char * argv[]) {
    @autoreleasepool {

        unsigned int count = 0;

        // 获得Person类中的所有成员变量
        Ivar *ivars = class_copyIvarList([Person class], &count);

        // 遍历所有成员变量
        for (int i = 0; i<count; i++) {
            Ivar ivar = ivars[i];

            // 获得成员变量名字
            const char *name = ivar_getName(ivar);

            // 获得成员变量类型
            const char *type = ivar_getTypeEncoding(ivar);
        }

        return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
    }
}

3.
1.runtime简称运行时,oc就是运行时机制,最主要的是消息机制
2.对于oc属于动态调用,只有在运行时才会根据函数的名称找到对应的函数
3.类名调用方法本质上是将类名转换成类对象
4.objc_msgSend(p,@selector(eat))

版权声明:欢迎转载!

iOS运行时(runtime)示例代码

  • 2016年08月25日 18:58
  • 266KB
  • 下载

iOS中runtime(运行时)的简单介绍与应用

最近学习到runtime这一块知识了所以就总结一下,以备以后要用。但是由于runtime这一块的知识比较多所以今天在这里只是做一个简单的总结。 一、什么是Runtime? Objective...
  • JC88JC
  • JC88JC
  • 2016年06月28日 19:27
  • 231

IOS开发——Runtime运行时

Runtime运行时,是objective-c底层C库,下面是详细的常用runtime函数使用解释,属于IOS开发高级进阶内容,有兴趣的朋友可以了解学习。微笑...

iOS 开发 Runtime 运行时机制 完全解读

前言在最开始听到runtime的时候,我是感到恐惧的,多么高大上的东西啊!!!后来,开始在网上查一些资料,可是就是只有那么几篇,看了好久,还不知所云,所以就更加恐惧了!!!!后来经过查看documen...

iOS 消息机制与运行时 运用runtime字典转模型

文章中的Demo地址https://github.com/InnerMongoliaZorro/runtime 开始学习iOS开发的时候,对Objective-C的消息转发机制和运行时十分不解,感觉...

iOS之运行时(Runtime)

动态编程语言和静态编程语言的区别 动态编程语a言:在程序运行过程中可以改变数据类型的结构,对象的函数,变量可以被修改删除。例如OC静态编程语言:在程序编译阶段检查数据的类型,数据类型的结构不可以在运...

XZ_iOS之Runtime使用运行时获取类的属性列表

简介 运行时是一种面向对象的编程语言的运行环境。类似于Java的虚拟机; OC最主要的特点就是在程序运行时,以发送消息的方式调用方法; 运行时是OC的核心,Objective-C就是基于运行时的...

浅谈iOS运行时机制runtime(1)

学习iOS开发已经两年了,也做过一些iOS开发的小项目,对iOS开发多少有点自己的见解,接下来我来谈谈我对iOS中runtime机制的理解(由于本次是我第一次写博客,若书写中有错误,欢迎大家指出)。 ...

iOS动态性(二):运行时runtime初探(强制获取并修改私有变量,强制增加及修改私有方法等)

OC是运行时语言,只有在程序运行时,才会去确定对象的类型,并调用类与对象相应的方法。利用runtime机制让我们可以在程序运行时动态修改类、对象中的所有属性、方法,就算是私有方法以及私有属性都是可以动...

iOS runtime 运行时( 二 深谈)

Attention!逆天的来了 我们在编程过程中,如果使用到了runtime(运行时),我们几乎都是想动态的改变这个类的信息,包括方法,属性,balabala的,并且获得这个类的一些信息,等等,下面...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:iOS--RunTime运行时
举报原因:
原因补充:

(最多只允许输入30个字)