美文网首页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也没关系,

    相关文章

      网友评论

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

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