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

2018-11-21 11:10:51 浏览数 (1)

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

0 人点赞