关于runtime的一些补充

本文详细介绍了Objective-C中的Ivar和属性的概念及其操作方法,包括成员变量的类型、实例变量的表示方式、属性的定义及如何通过API进行属性的获取和设置等。

在我的上一篇文章中,主要列出了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()释放。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值