文档章节

objc动态运行时一些API

M
 Mateen
发布于 2014/03/27 17:37
字数 304
阅读 232
收藏 2

首先要导入

<objc/objc-runtime.h>


主要用于在本页面中 类与类之间的通信,

采用关联的模拟。

如 UILabel *testLabel = [UILabel alloc ]init];

    objc_setAssociatedObject(testLabel,@"TestKey",@"Value",OBJC_ASSOCIATION_COPY_NONATOMIC);

关于参数 testLabel:一般是绑定一个控件 可以是属于UIAlertView、UILabel、UITextField..

            TestKey:一般是给定一个Key值,在获取关联值的时候 这个key值是关键.

            Value:绑定在控件和Key值上.

            OBJC_ASSOCIATION_COPY_NONATOMIC:可以理解为该value的属性的声明值<个人观点>,该属性的意思是 <nonatomic,copy>.该参数的有几个协议选择.OBJC_ASSOCIATION_ASSIGN:可以理解为<assign>.OBJC_ASSOCIATION_RETAIN_NONATOMIC:如同<nonatomic,retain>,OBJC_ASSOCIATION_RETAIN:如同<retain>,OBJC_ASSOCIATION_COPY:如同<copy>;

 

    在本类中其它的方法中

    objc_getAssociatedObject(testLabel,@"TestKey");

关于参数 testLabel:必须与上面的控件地址一致    

            TestKey:关键key值 如想获取对应的value,该参数必须是对应的key值.

该方法返回一个id值 这个值可能是NSString类型的 可能是NSArray.该值应与绑定的时候的值的类型一致.


  如果不需要用到该属性 或者想删除与该控件绑定的value值

    objc_removeAssociatedObects(testLabel)

关于参数 testLabel:必须与上面的控件地址一致    


© 著作权归作者所有

M
粉丝 4
博文 12
码字总数 1846
作品 0
海淀
私信 提问
iOS开发 Runtime原理及使用(最后面试题详解)

runtime简介 因为Objc是一门动态语言,所以它总是想办法把一些决定工作从编译连接推迟到运行时。也就是说只有编译器是不够的,还需要一个运行时系统 (runtime system) 来执行编译后的代码。这...

_小迷糊
2018/12/10
0
0
探秘Runtime - Runtime介绍

该文章属于原创,转载请注明: https://www.jianshu.com/p/ce97c66027cd 是系统中重要的组成部分,面试也是必问的问题,所以是一个工程师必须掌握的知识点。 现在市面上有很多关于的学习资料...

刘小壮
2018/11/16
17
0
Runtime of Objective-C

- (void)forwardInvocation:(NSInvocation *)anInvocation { if ([someOtherObject respondsToSelector:[anInvocation selector]]) [anInvocation invokeWithTarget:someOtherObject]; else ......

Im刘亚芳
2014/12/05
0
0
iOS运行时Runtime浅析

版权声明:本文为博主原创文章,欢迎分享到其它技术社区,分享请标明出处: https://blog.csdn.net/CHENYUFENG1991/article/details/51931320 运行时是iOS中一个很重要的概念,iOS运行过程中...

乞力马扎罗的雪CYF
2016/07/17
0
0
ios runtime基础知识

非盈利无广告开发者专用网址导航:www.dev666.com 前言 学习Objective-C的运行时Runtime系统是很有必要的。个人觉得,得之可得天下,失之则失天下。 Objective-C提供了编译运行时,只要有可能...

feng_blog
2016/06/02
353
0

没有更多内容

加载失败,请刷新页面

加载更多

聊聊nacos的LocalConfigInfoProcessor

序 本文主要研究一下nacos的LocalConfigInfoProcessor LocalConfigInfoProcessor nacos-1.1.3/client/src/main/java/com/alibaba/nacos/client/config/impl/LocalConfigInfoProcessor.java p......

go4it
昨天
5
0
前端技术之:webpack热模块替换(HMR)

第一步:安装HMR中间件: npm install --save-dev webpack-hot-middleware 第二步:webpack配置中引入webpack对象 const webpack = require('webpack’); 第三步:增加devServer配置项: ho......

popgis
昨天
5
0
死磕 java线程系列之线程池深入解析——体系结构

(手机横屏看源码更方便) 注:java源码分析部分如无特殊说明均基于 java8 版本。 简介 Java的线程池是块硬骨头,对线程池的源码做深入研究不仅能提高对Java整个并发编程的理解,也能提高自己...

彤哥读源码
昨天
7
0
虚函数表 图解

虚函数表 图解 p504

天王盖地虎626
昨天
6
0
java反射

学习目标  什么是反射  反射运行原理  了解反射机制的相关类  获取 class 对象的 3 种方式  通过反射获取构造方法并使用  通过反射获取成员变量并调用  通过反射获取成员方法并...

流川偑
昨天
5
2

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部