关于runtime的一些补充

简介: 在我的上一篇文章中,主要列出了runtime的一些方法和特性,这一篇文章着重讲一讲实现成员变量、属性基础数据类型IvarIvar是表示实例变量的类型,其实际是一个指向objc_ivar结构体的指针objc_prope...

在我的上一篇文章中,主要列出了runtime的一些方法和特性,这一篇文章着重讲一讲实现

成员变量、属性

基础数据类型

Ivar


img_801c2a62a15de6f36fb4ad091f70a78d.png

Ivar是表示实例变量的类型,其实际是一个指向objc_ivar结构体的指针

objc_property_t


img_4d464fbff4459f0e25a8092e8d8e681c.png

objc_property_t是表示Objective-C声明的属性的类型,其实际是指向objc_property结构体的指针

objc_property_attribute_t


img_9cc6ef1973aa23b92a934170ece2962d.png
objc_property_attribute_t定义了属性的特性(attribute)

成员变量、属性的操作方法

成员变量

成员变量操作包含以下函数:


img_1c284ce521350a244229b3f8cca2a195.png
获取成员变量名


img_033e93270608545b213e494ed576c505.png
获取成员变量类型编码


img_6167adc0876188b697dba935200c8f2a.png
ptrdiff_t ivar_getOffset ( Ivar v );


img_aeafaaf2417932137e4abda497b61455.png
获取属性名


img_0d248b21883d353b512e6ad1221c3fd0.png
获取属性特性描述字符串


img_ed4f1344ffbaa474730a38916ad7e490.png
获取属性中指定的特性


img_b630bb262975f21cf36540f64743c327.png
获取属性的特性列表

property_copyAttributeValue函数,返回的char *在使用完后需要调用free()释放。

property_copyAttributeList函数,返回值在使用完后需要调用free()释放。

目录
相关文章
|
3天前
|
存储 缓存 API
技术笔记:Runtime的相关知识
技术笔记:Runtime的相关知识
10 1
|
17天前
|
人工智能 Rust 安全
WebAssembly运行时库(WASM runtime:wasmer 或 wasmtime)\将rust官方demo猜数字编译为WASI目标并使用Wasmer运行
WebAssembly运行时库(WASM runtime:wasmer 或 wasmtime)\将rust官方demo猜数字编译为WASI目标并使用Wasmer运行
22 2
|
10月前
|
编译器 Go 索引
Go 官方标准编译器中所做的优化
Go 官方标准编译器中所做的优化
44 0
|
Java
Java常用API---Runtime(消息机制)含代码例子
私有化构造方法,不能被实例化
160 0
Java常用API---Runtime(消息机制)含代码例子
|
存储 API C语言
OC底层知识(九) : Runtime(上)
OC底层知识(九) : Runtime
136 0
OC底层知识(九) : Runtime(上)
|
API
OC底层知识(九) : Runtime(下)
OC底层知识(九) : Runtime(下)
84 0
OC底层知识(九) : Runtime(下)
|
编译器 iOS开发
[OC Runtime编程指南_翻译]七、类型编码
[OC Runtime编程指南_翻译]七、类型编码
90 0
[OC Runtime编程指南_翻译]七、类型编码
|
iOS开发
[OC Runtime编程指南_翻译]二、运行时版本和平台
[OC Runtime编程指南_翻译]二、运行时版本和平台
124 0
|
NoSQL 编译器 iOS开发
[OC Runtime编程指南_翻译]三、与运行时交互
[OC Runtime编程指南_翻译]三、与运行时交互
121 0
|
编译器 iOS开发
[OC Runtime编程指南_翻译]五、动态方法解析
[OC Runtime编程指南_翻译]五、动态方法解析
87 0