您好,欢迎来到二三娱乐。
搜索
您的当前位置:首页Swift OC 混编 Model类的设置

Swift OC 混编 Model类的设置

来源:二三娱乐

在OC中model类的属性大多如下设置(记得要根据需求换关键字,不是本篇重点)

@property (nonatomic, strong) NSString *name;

因为OC中属性为nil时并不会引发crash,当从服务器接收数据将字典转化为模型时,如果某些字段为空,在oc中直接[entity.name doSometing];也大多不会崩溃(有例外)
但是这条属性到了swift中就变成了这样


如果name为空时就会引发crash

这样的话,如果服务器接收的字段为NULL,赋值之后,在swift中只要调用entity.name!就回引发crash,因为不能给一个nil值强制解包.如果不修改model类的话,每次使用这个属性都需要

if let name = entity.name {
//执行赋值语句
} 
//或者
guard let name = entity.name else {
      return
}
//执行赋值语句

这样很啰嗦,因此我们需要在Objective-C中,将属性标上 nullable ,这样Swift中该属性变成了optional然后采用 if let 或者 guard let 来安全地拆包,某些属性也可以直接使用 entity.name? 也可以,解包时为nil也没关系,

Copyright © 2019- yule263.com 版权所有 湘ICP备2023023988号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务