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运行时机制-类与对象的内部结构

最近一直在研究runtime运行时机制的问题,我想可能也有很多人不太清楚这个问题吧?在这里跟大家沟通分享下我对与runtime机制的理解。   要理解runtime,首先我们要了解类和对象的内部...

iOS Runtime运行时机制的正确使用姿势

Runtime运行时机制在项目中的实际使用:相信很多人都有过这样的经历,就是当我们接手一个项目时,若要修复某个BUG或是查看某某功能是如何实现的,特别是大项目,再加上对项目的业务逻辑不熟悉、对项目的设...

iOS运行时(runtime)探究二:主要函数

一、类相关操作函数// 获取类的类名 const char * class_getName ( Class cls );// 获取类的父类 Class class_getSuperclass ( Cl...

iOS开发-------初探运行时runtime

对于iOS的开发者,相信Objc的RunTime机制肯定都听说过,了解RunTime的机制,对自己的提高不言而喻,最近在一直学习RunTime机制,对此写下点学习过程的收获,以便以后查阅,也方便理解,...

IOS runtime运行时

object-c Runtime动态运行时。相当于程序在执行某个方法或者事件的之前可以用运行时来做一些事情。其实就是几个方法。 首先得引入c语言的底层的类#import 1.第一件属性关联——属性关...

iOS-浅谈runtime运行时机制01-类与对象的内部结构

最近一直在研究runtime运行时机制的问题,我想可能也有很多人不太清楚这个问题吧?在这里跟大家沟通分享下我对与runtime机制的理解。   要理解runtime,首先我们要了解类和对象的内部...

iOS运行时runtime获取私有属性和强制更改私有属性,以及获取私有方法

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

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

原文网址:http://www.cnblogs.com/wengzilin/p/4344952.html?utm_source=tuicool OC是运行时语言,只有在程序运行时,才...

iOS-浅谈runtime运行时机制01-类与对象的内部结构

最近一直在研究runtime运行时机制的问题,我想可能也有很多人不太清楚这个问题吧?在这里跟大家沟通分享下我对与runtime机制的理解。   要理解runtime,首先我们要了解类和对象的内部...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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