美文网首页iOS开发精选
Swift OC 混编 Model类的设置

Swift OC 混编 Model类的设置

作者: 有点精分 | 来源:发表于2016-05-06 11:21 被阅读293次

在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也没关系,

相关文章

  • oc Swift 混编

    oc Swift 混编 oc 项目 混编Swift1.1 oc 调用 Swift 的类 和 方法步骤: ...

  • Swift OC 混编 Model类的设置

    在OC中model类的属性大多如下设置(记得要根据需求换关键字,不是本篇重点) 因为OC中属性为nil时并不会引发...

  • OC Swift文件混编

    一.Swift 类可以继承 OC 类,OC 类不能继承 Swift 类。 二.Swift 和 OC 混编 三.两个...

  • Swift报错:fatal error: use of unim

    OC与Swift混编时,创建一个swift类继承自OC类,由于这个OC类已自定义构造函数,所以在这个swift类中...

  • Framework 之 Swift & OC 混编问题一

    Framework 中的若使用了 Swift 与 OC 混编,会遇到一种问题:OC类的 .h头文件 没有设置成 P...

  • Swift

    混编 15、OC与Swift的混编_海森堡_lichangan的博客-CSDN博客_oc swift 混编[htt...

  • Swift与OC、C++混编

    Swift与OC混编 Swift工程中调用OC代码 不需要在Swift中import OC的类,统一在桥接文件中导...

  • OC与Swift混编

    1.swift使用oc的单例类方法或者+(instancetype)方法 在oc项目里面混编swift的时候,sw...

  • OC和Swift混编手动创建桥接文件及命名空间

    Obj-C混编Swift && Swift混编Obj-C Swift引用OC实现通过桥接头文件,OC引用Swift...

  • OC和Swift混编一

    OC工程下混编 Swift工程下混编请查看OC和Swift混编二 1.建一个OC工程命名为OCTestSwift ...

网友评论

    本文标题:Swift OC 混编 Model类的设置

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