iOS Runtime和KVC结合实现字典的数据模型转换

本文介绍了iOS开发中的Runtime和KVC。Runtime是一套底层API,是Objective-C动态语言的基础,主要涉及消息传递和转发。KVC则是通过Key名称动态访问和修改对象属性的技术,尤其在没有访问器方法的类中展现出优势。通过Runtime与KVC的结合,可以方便地实现字典到数据模型的转换。
摘要由CSDN通过智能技术生成

1、runtime 是什么?

Runtime又叫运行时,是一套底层的C语言 API,其为iOS内部的核心之一,我们平时编写的OC代码,底层都是基于它来实现的。我们需要了解的是 Objective-C 是一门动态语言,它会将一些工作放在代码运行时才处理而并非编译时。也就是说,有很多类和成员变量在我们编译的时是不知道的,而在运行时,我们所编写的代码会转换成完整的确定的代码运行

2、runtime 可以干什么?

Runtime的特性主要是消息(方法)传递,如果消息(方法)在对象中找不到,就进行转发

3、KVC的定义

KVC(Key-value coding)键值编码,就是指在IOS的开发中,可以允许开发者通过Key名称直接访问对象的属性,或者给对象的属性赋值。而不需要调用明确的存储方法。这样就可以在运行时动态地访问和修改对象的属性。

在实现了访问器方法的类中,使用点语法和KVC访问对象其实差别不大,二者可以任意混用。但是没有访问起方法的类中,点语法无法使用,这时KVC就有优势了。

3.1 KVC常用的方法

KVC的定义都是对NSObject的扩展来实现的,Objective-C中有个显式的NSKeyValueCoding类别名,所以对于所有继承了NSObject的类型,都能使用KVC(一些纯Swift类和结构体是不支持KVC的,因为没有继承NSObject),下面是KVC最为重要的四个方法:

- (nullable id)valueForKey:(NSString *)key;                          //直接通过Key来取值

- (void)setValue:(nullable id)value 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值