iOS-OC-Runtime ---objc_setAssociatedObject
来源:互联网 发布:阿里云语音识别demo 编辑:程序博客网 时间:2024/06/05 09:31
一.objc/runtime.h相关
Objecitve-C的重要特性是Runtime(运行时),在Interacting with the Runtime(交互运行)中,运行时函数部分,苹果给出了/usr/lib/libobjc.A.dylib库,这个共享库提供支持动态属性的objective - c语言,通过其接口,可以用于开发将其他语言运行于Objective-C上的中间层(桥接层),库里的函数定义为纯C语言。
二.objc/runtime.h使用
在这里我们主要举个简单的栗子��,通过新建一个UIButton的类别。
1.导入头文件
#import <objc/runtime.h>
2.新建一个Action的Category;
然后在.h中添加一个事件的Block,代码如下:
在这里我们创建了一个加方法,来创建一个按钮;
实现如下:
objc_setAssociatedObject(id object, const void *key, id value, objc_AssociationPolicy policy)
id object :表示关联者,是一个对象,变量名理所当然也是object
const void *key :获取被关联者的索引key
id value :被关联者,这里是一个block
objc_AssociationPolicy policy : 关联时采用的协议,有assign,retain,copy等协议,一般使用OBJC_ASSOCIATION_RETAIN_NONATOMIC
注意这里面我声明了两个索引KEY;3.通过类别创建两个按钮
4.获取苹果私有的APi
这里我们也可以通过runtime获取苹果私有的方法;
阅读全文
0 0
- iOS-OC-Runtime ---objc_setAssociatedObject
- iOS-OC-Runtime使用小谈(objc_setAssociatedObject)
- ios runtime objc_getAssociatedObject&objc_setAssociatedObject用法
- iOS runtime ~ objc_setAssociatedObject方法详解
- ios runtime 动态属性objc_setAssociatedObject和objc_getAssociatedObject
- ios runtime 动态属性objc_setAssociatedObject和objc_getAssociatedObject
- iOS runtime ~ objc_setAssociatedObject 函数关键策略
- OC关联objc_setAssociatedObject
- OC对象关联~objc_setAssociatedObject/objc_getAssociatedObject
- iOS Runtime-OC黑魔法
- iOS开发 -OC之 runtime机制
- iOS关联(objc_setAssociatedObject)
- iOS关联,objc_getAssociatedObject, objc_setAssociatedObject
- iOS 关于objc_setAssociatedObject,objc_getAssociatedObject
- OC - Runtime
- OC-Runtime
- oc: Runtime
- OC关联(objc_setAssociatedObject、objc_getAssociatedObject、objc_removeAssociatedObjects)
- 微信小程序20
- java字符串转换成数组
- Android 7.0 FileUriExposedException 解决
- Cassandra 常用命令之 nodetool status
- 微信小程序21
- iOS-OC-Runtime ---objc_setAssociatedObject
- 自定义开关
- 国家集训队论文分类整理
- h5 1
- k8s入门和集群安装
- vue源码分析:渲染篇
- 百度地图API的一些使用常识和技巧
- h5 2
- APT32宏病毒分析