美文网首页
关于Runtime的一点个人理解

关于Runtime的一点个人理解

作者: 小枫0804 | 来源:发表于2017-03-07 10:34 被阅读0次

对象方法:类对象的方法列表      类方法:元类中方法列表

1.通过isa去对应的类中查找

2.注册方法编号

3.根据方法编号去查找对应方法

4.找到只是最终函数实现地址,根据地址去方法区调用对应函数

一、 交换方法

首先需要导入 #import<objc/message.h>

.h文件

@interfaceUIImage (YBF)

+ (UIImage*)YBF_imageNamed:(NSString*)name;

@end

.m 文件

@implementationUIImage (YBF)

+ (void)load {

MethodimageNameMethod =class_getClassMethod(self,@selector(imageNamed:));

MethodYbfImageNameMedhod =class_getClassMethod(self,@selector(YBF_imageNamed:));

method_exchangeImplementations(YbfImageNameMedhod, imageNameMethod);

}

+ (UIImage*)YBF_imageNamed:(NSString*)name {

UIImage*image = [UIImageYBF_imageNamed:name];  // 这里需要调用方法的本身,因为前面已经交换方法了,所以这里实际调用的是系统的imageNamed:方法

if(image) {

NSLog(@"成功");

}else{

NSLog(@"失败");

}

returnimage;

}

@end

二、添加属性

.h 文件

@interfaceNSObject (YBF)

@propertyNSString*name;

@end

.m 文件

@implementationNSObject (YBF)

- (void)setName:(NSString*)name {

objc_setAssociatedObject(self,@"name", name,OBJC_ASSOCIATION_RETAIN_NONATOMIC);

}

- (NSString*)name {

returnobjc_getAssociatedObject(self,@"name");

}

@end

相关文章

  • 赵熊猫关于iOS的文章索引

    1.Runtime的个人理解 2.Runloop的个人理解 3.iOS - 关于UIView中添加手势监听和tab...

  • 关于Runtime的一点个人理解

    对象方法:类对象的方法列表 类方法:元类中方法列表1.通过isa去对应的类中查找2.注册方法编号3.根据方法编...

  • 关于iOS Runtime让你了解更多

    关于Runtime Runtime根据字面理解就是运行时,当我们的代码运行的时候所体现的东西,举一个比较简单一点的...

  • 关于RunTime理解

    一、runtime简介 RunTime简称运行时。OC就是运行时机制,也就是在运行时候的一些机制,其中最主要的是消...

  • Runtime的个人理解

    刚接触runtime的时候,就感觉很陌生,完全没有见过相关代码。所以趁着闲时间看了看官方解释以及网上各种大佬的详细...

  • objective-C之runtime第一篇

    网上查看了一些runtime的资料, 关于runtime是什么?这里想用自己的理解,简单点说:runtime是一套...

  • 11.runtime 理解 和 常用点

    问题 1.runtime 个人理解2.runtime 常用api3.runtime 日常运用解决问题4.runti...

  • 关于ios runtime理解

    什么是runtime 说到runtime,根据字面意思就是运行期间。但我觉得首先应该说一下oc到底是个什么东西。首...

  • ios中runtime分析

    大家好,今天给大家分享下对于runtime 的理解 ,网上关于runtime 的介绍非常多,内容也各种各样...

  • Runtime学习笔记

    1.关于runtime最开始的理解就是 2.后来有知道了runtime运行时机制的这个图

网友评论

      本文标题:关于Runtime的一点个人理解

      本文链接:https://www.haomeiwen.com/subject/esovuttx.html