前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >swift 增加 Xcode 编译速度 减少 Xcode 编译时间 日常注意事项

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

作者头像
onety码生
发布2018-11-21 11:10:51
8550
发布2018-11-21 11:10:51
举报
文章被收录于专栏:码生码生

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

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

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

1. 替换 ??

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

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

代码语言:javascript
复制
/// 占位字符串 同 ?? 相同功能,但是 ?? 会增加编译时间
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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017.09.24 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 替换 ??
  • 2. 字符串使用 appending 代替 +
  • 3. 参数名称指定
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档