美文网首页
iOS Crash: KVC键值编码

iOS Crash: KVC键值编码

作者: 喔牛慢慢爬 | 来源:发表于2021-03-16 10:56 被阅读0次

前言

最近项目中因为数据问题,导致了KVC由字典转数据model时产生了崩溃,原因是后台返回的数据中存在key对应的value为空,导致了重写的setNilValueForKey方法抛出异常。

模拟Crash

{ 
    name =  null;
    age = 24;
}

在OC中模拟的话可以将value设置为[NSNull null];
调用setValuesForKeysWithDictionary修改Model中对应key的属性,将字典类型数据转化为model。此时如果model类中未重写setNilValueForKey方法系统将抛出以下类似错误:

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '[<People 0x100200080> setNilValueForKey]: could not set nil as the value for the key name.' 

所以我们需要再model类中重写setNilValueForKey方法,为value为空的key设置默认值,也可以不做处理。

我们定义的model中已经重写了setNilValueForKey方法,但多写了一句话:调用了父类的这个方法:[super setNilValueForKey:key],同样引起了Craash😭😭😭

- (void)setNilValueForKey:(NSString *)key
{
    [super setNilValueForKey:key];
}

删除[super setNilValueForKey:key]就可以正常运行了,这个问题隐藏了好久,疏忽了😢

相关文章

  • iOS Crash: KVC键值编码

    前言 最近项目中因为数据问题,导致了KVC由字典转数据model时产生了崩溃,原因是后台返回的数据中存在key对应...

  • iOS开发--KVC

    KVC键值编码 首先我们先了解下什么是KVC:KVC:Key Value Codeing 键值编码,ios提供的一...

  • iOS 中的 KVC和KVO简介

    1. KVC 1.1 KVC介绍 KVC 是 Key Value Coding 的缩写,即键值编码。在iOS的开发...

  • 2.2 KVC和KVO详解

    image.png KVC KVC定义 KVC(Key-value coding)键值编码,就是指iOS的开发中,...

  • ios开发UI篇—Kvc简单介绍

    一、KVC简单介绍 KVC key valued coding 键值编码 KVC通过键值间接编码 补充: 与KVC...

  • iOS之KVC字典转模型的底层实现

    KVC: Key Value Coding (键值编码) 在iOS开发中,KVC是我们经常要使用的技术.那么KVC...

  • iOS 键值编码 KVC

    KVC KVC -- Key Value Coding 键值编码 键值编码的基本概念键值编码是一个用于简介访问对象...

  • iOS中KVC使用及原理解析

    什么是KVC? KVC即Key-Value Coding,意思键-值编码。iOS中键值编码机制是一种由NSKeyV...

  • OC-KVC

    KVC是什么 kvc就是Key-Value Coding(键值编码)。 键值编码是NSKeyValueCoding...

  • iOS中的KVC与KVO,NSNotification通知

    问题: 什么是键值编码KVC,键路径是什么? 什么是键值观察KVO? 键值编码KVC: 键值编码是一种在NSKey...

网友评论

      本文标题:iOS Crash: KVC键值编码

      本文链接:https://www.haomeiwen.com/subject/mlwrcltx.html