专栏首页码生swift 增加 Xcode 编译速度 减少 Xcode 编译时间 日常注意事项

swift 增加 Xcode 编译速度 减少 Xcode 编译时间 日常注意事项

swift 是编译型语言,所以编译时间相比较 OC 是要增加不少时间的 swift 在 编译的时候花费做多的时间就是,类型推断 关于影响编译速度和统计编译时间的文章在度娘上比比皆是

而一些合适的编码方式,会大量减少编译时间

这里主要是记录一下在日常中用到的并且真切的能够减少编译时间的一些小技巧

1. 替换 ??

?? 使用起来是非常的方便,但是从编译时间上来看,着实增加了不少的编译时间,甚至是成倍,几十倍的增加。但是如果到处使用 let 解包,这样的代码感觉惨不忍睹

那我们就是用函数(方法)来替换 ??

/// 占位字符串 同 ?? 相同功能,但是 ?? 会增加编译时间
public func SMStrNil(_ cur: String?, _ placeHolder: String) -> String {
    if let exit = cur {
        return exit
    } else {
        return placeHolder
    }
}

/// 占位 Int 同 ?? 相同功能,但是 ?? 会增加编译时间
public func SMIntNil(_ cur: Int?, _ placeHolder: Int) -> Int {
    if let exit = cur {
        return exit
    } else {
        return placeHolder
    }
}

/// 占位 Double 同 ?? 相同功能,但是 ?? 会增加编译时间
public func SMDoubleNil(_ cur: Double?, _ placeHolder: Double) -> Double {
    if let exit = cur {
        return exit
    } else {
        return placeHolder
    }
}

/// 占位 Double 同 ?? 相同功能,但是 ?? 会增加编译时间
public func SMCGFloatNil(_ cur: CGFloat?, _ placeHolder: CGFloat) -> CGFloat {
    if let exit = cur {
        return exit
    } else {
        return placeHolder
    }
}

/// 占位 Bool 同 ?? 相同功能,但是 ?? 会增加编译时间
public func SMBoolNil(_ cur: Bool?, _ placeHolder: Bool) -> Bool {
    if let exit = cur {
        return exit
    } else {
        return placeHolder
    }
}

/// 占位任意类型,使用此方法可能增加编译时间,故使用指定类型方法 同 ?? 相同功能,但是 ?? 会增加编译时间
public func SMNil<T>(_ cur: T?, _ placeHolder: T) -> T {
    if let exit = cur {
        return exit
    } else {
        return placeHolder
    }
}

2. 字符串使用 appending 代替 +

3. 参数名称指定

WechatIMG2026.jpeg

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • ReactNative 获取屏幕宽高

    onety码生
  • mac python virtualenv 安装虚拟环境

    主要是为了解决在同一个系统中存在多个项目的情况, 采用虚拟的方式,为每个项目创建各自的环境,使各个项目不会相互干扰

    onety码生
  • Django 常用工具 import 常用模块

    from rest_framework import routers, serializers, viewsets

    onety码生
  • 关于exp statistics的问题和简单测试(82天)

    在数据导出的时候,可能会碰到EXP-00091: Exporting questionable statistics.的问题,有时候会让人有点摸不到头脑,不知道...

    jeanron100
  • 2019年Web前端开发的8个趋势,你知道几个?

    熟悉前端开发的人应该都知道,最近几年,各种前端框架层出不穷,H5开发模式也越来越流行,大前端时代也已经到来。

    用户5827212
  • 巴西世界杯官网遭黑客攻击陷入瘫痪

    世界杯比赛期间,抗议活动一直并未中断。之前,黑客组织威胁,将在赛事期间,对世界杯相关网站发动攻击,周五,黑客终于“兑现诺言”,攻破了巴西世界杯官网。当地时间周五...

    安恒信息
  • Kaggle 实战:Quora Question Pairs

    由于这次数据量太大,并且涉及到自然语言处理,我自己一台 4G 内存的笔记本完全无法完成大计算量的处理。所以这次文章主要介绍几个简单特征的计算以及可视化,算是给自...

    serena
  • 移动Web开发(一)

    a.程序访问: ECMAScript(ES) 3 、 ES 5 、 ES hamony 、 Web IDL 、DOM 2\3 、Offline 、File ...

    从今若
  • 实用主义:前后端分离MOCK数据

    MrTreasure
  • CSRF的原理和防范措施

    skylark

扫码关注云+社区

领取腾讯云代金券