Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >swift 增加 Xcode 编译速度 减少 Xcode 编译时间 日常注意事项

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

作者头像
onety码生
发布于 2018-11-21 03:10:51
发布于 2018-11-21 03:10:51
93200
代码可运行
举报
文章被收录于专栏:码生码生
运行总次数:0
代码可运行

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

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

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

1. 替换 ??

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

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/// 占位字符串 同 ?? 相同功能,但是 ?? 会增加编译时间
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 删除。

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Swift基础 通用
翻译自:https://docs.swift.org/swift-book/LanguageGuide/Generics.html
郭顺发
2023/07/17
1760
Swift 5.5 新特性
SE-0296提案终于为开发者带来了期待已久的 async/await,语法基本上和javascript中的很像。
小刀c
2022/08/16
2.7K0
Swift 5.5 新特性
试试将.NET7编译为WASM在Docker上运行
之前有听到说 Docker 支持 Wasmtime 了,刚好.NET7 也支持 WASM,就带大家来了解一下这个东西,顺便试试它怎么样。
InCerry
2023/03/08
1K0
试试将.NET7编译为WASM在Docker上运行
Swift 3到5.1新特性整理
Swift 5.0 最重要的自然是ABI Stability, 对此可以看这篇 Swift ABI 稳定对我们到底意味着什么 。
小刀c
2022/08/16
4.8K0
Swift 3到5.1新特性整理
Swift学习之5.1和5.2新特性
Swift 5.1 内置于 Xcode 11,新增了很多新特性,比较重要的有以下几个。
YungFan
2020/05/18
2.1K0
Swift日常开发随笔
提示:之所以为空白,是因为我把下拉列表中的tableView.reloadData()这行代码屏蔽掉了,加入的数组没有刷新。
编程怪才-凌雨画
2020/10/11
2K0
Swift基础语法(二)
我们之前介绍的数组Array、字典Dictionary等,都是值类型,而函数是引用类型。
拉维
2020/06/02
2.3K0
Swift 5.6到5.10新特性整理
当你编写涉及共享状态的代码时,如果你不确保这个共享状态在跨线程使用时是安全的,你就会在许多地方遇到数据竞争的问题。
小刀c
2024/04/03
2.3K0
Swift 5.6到5.10新特性整理
Swift 进阶: 泛型
泛型代码让你能根据你所定义的要求写出可以用于任何类型的灵活的、可复用的函数。你可以编写出可复用、意图表达清晰、抽象的代码。
Swift社区
2021/11/26
1.8K0
Swift 进阶: 泛型
Swift 4.0 新特性
WWDC 2017 带来了很多惊喜,在这次大会上,Swift 4 也伴随着 Xcode 9 测试版来到了我们的面前,虽然正式版要8月底9月初才会公布,但很多强大的新特性正吸引我们去学习它。根据大会上已经开放的新特性,先一睹为快。 体验 Swift 4包含在Xcode 9中,您可以从Apple的开发者门户下载最新版本的Xcode 9(您必须拥有一个活跃的开发者帐户)。 每个Xcode测试版将在发布时捆绑最新的Swift 4快照。在阅读时,您会注意到[SE-xxxx]格式的链接。 这些链接将带您到相关的Swif
xiangzhihong
2018/02/06
1.8K0
Swift 4.0 新特性
Swift 3.1的新改动
Xcode 8.3 和 Swift 3.1 已经发布了(3/28)! 可以通过 AppStore 或 Apple Developer 进行下载 Xcode 8.3 优化了 Objective-C 与 Swift 混编项目的编译速度. Swift 3.1 版本包含一些期待已久的 Swift package manager 功能和语法本身的改进。 如果您没有密切关注 Swift Evolution 进程,请继续阅读 - 本文非常适合您! 在本文中,我将强调Swift 3.1中最重要的变化,这将对您的代码产生重
BY
2018/05/11
2.5K0
swift4.0语法杂记(精简版)
一、swift简史 1、介绍 swift是苹果公司于2014年推出用于撰写OS和iOS应用程序的语言。它由苹果开发者工具部门总监“克里斯.拉特纳”在2010年开始着手设计,历时一年完成基本的架构。到后来苹果公司大力投入swift语言的研发,于2014年发布这一语言的第一版本。swift2.0之后的语法则趋于稳定,2017年发布的swift4.0虽有改动,但也只是增添了一些新特性。这些新特性需要在Xcode9上运行才能显示出效果。值得一提的是它支持unicode9,也就是说,可以用某些图片图标来充当变量。
谦谦君子修罗刀
2018/05/02
15.6K0
swift4.0语法杂记(精简版)
Why Swift? Generics(泛型), Collection(集合类型), POP(协议式编程), Memory Management(内存管理)
写这篇文章主要是为了给组内要做的分享准备内容。这段时间几个项目都用到 Swift,在上次 GIAC 大会上就被问到为什么要用 Swift,正好这个主题可以聊聊 Swift 的哪些特性吸引了我。
用户7451029
2020/06/16
1.3K0
Why Swift? Generics(泛型), Collection(集合类型), POP(协议式编程), Memory Management(内存管理)
Swift 3.0介绍
概述 我接触swift是从2.0开始,当时出于对ios的好奇,加上官方的大力推荐,于是扎入了ios的怀抱,从1.2发展到了今天的3.0.1,这期间由于Swift目前还在发展阶段并不能向下兼容,这也造成部分我们2.x开发的版本在新版本上运行的问题,不过基于最近基本版本改动比较小的原因吧,我觉得swift是为了ios的趋势。尽管对于开发人员来说Swift3.0的变化会令你的程序几乎处处报错,但是试想一下如果Apple没有追求极致的精神又怎么会做出如此多的更改。本文介绍主要以3.0为基础讲解,从Swift编译器
xiangzhihong
2018/01/26
1.3K0
读 SnapKit 和 Masonry 自动布局框架源码
一直觉得 SnapKit 和 Masonry 这两个框架设计和封装的很好,用起来的体验也是一致的,翻了下它们的源码,对其设计方式和涉及的技术做了下记录。文章打算围绕,给谁做约束?如何设置约束?设置完后如何处理?这三个问题看看 SnapKit 和 Masnory 分别是怎么做的,正好也能够窥探下作者是如何利用 Swift 和 Objective-C 两个不同语言的不同特性做到一致的使用体验的。
用户7451029
2020/06/16
2.3K0
读 SnapKit 和 Masonry 自动布局框架源码
Swift 实现俄罗斯方块详细思路解析(附完整项目)
一:写在开发前     俄罗斯方块,是一款我们小时候都玩过的小游戏,我自己也是看着书上的思路,学着用 Swift 来写这个小游戏,在写这个游戏的过程中,除了一些位置的计算,数据模型和理解 Swift 语言之外,最好知道UIKIt框架中的 Quartz2D 这个知识点。是我在简书上面找的,是关于 Quartz2D 这个知识点的,看它我觉得也就够学习。经过这两天的整理,充分觉得在写这些之前,一定要理清楚思路,你可能会花很多时间在它上面,你要知道了,怎么写就变的反而简单了。 二:具体开发思路及主要代码     我
Mr.RisingSun
2018/01/09
1.4K0
Swift 实现俄罗斯方块详细思路解析(附完整项目)
如何分析和提高(C/C++)程序的编译速度?
当我们遇到这样情况的时候,是不是不知所措呢?怎么防止遇到这样的情况呢,我们来分析一下程序加速的一些方法。
李肖遥
2020/07/03
1.5K0
如何分析和提高(C/C++)程序的编译速度?
WWDC 2021新Formatter API:新老比较及如何自定义
在WWDC 2021的What's in Foundation专题中,苹果隆重介绍了适用于Swift的新Formatter API。网上已经有不少文章对新API的用法进行了说明。本文将通过介绍如何创建符合新API的Formatter,让读者从另一个角度了解新Formatter API的设计机制;并对新旧两款API进行比较。
东坡肘子
2022/07/28
1.4K0
WWDC 2021新Formatter API:新老比较及如何自定义
【面试必备】Swift 面试题及其答案
答案:optional类型被用来表示任何类型的变量都可以表示缺少值。在Objective-C中,引用类型的变量是可以缺少值得,并且使用nil作为缺少值。基本的数据类型如int 或者float没有这种功能。
编程怪才-凌雨画
2021/01/26
2.9K0
【面试必备】Swift 面试题及其答案
Apple Swift编程语言入门教程
今天凌晨Apple刚刚发布了Swift编程语言,本文从其发布的书籍《The Swift Programming Language》中摘录和提取而成。希望对各位的iOS&OSX开发有所帮助。
sanmutongzi
2020/03/04
2.1K0
相关推荐
Swift基础 通用
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验