Swift / XCode 一个非常小的应用程序编译存档需要 25 分钟

Swift / XCode compiling Archive takes 25 minuts for a very small App

我有一个非常小的(一个寻呼机)Swift 应用程序。唯一的功能是显示数组的值 - 一些计算等等。我的 Main ViewController 有 1600 行代码。这1600行中的1100行只是定义了一个巨大的Array。所以...非常小...

XCode 编译存档需要 25 分钟,"stuck" 在我的主 ViewController 文件上。我的 iOS 设备的开发/测试编译只需要 15 秒左右...

当我现在将大数组减少到 200 个项目时,存档编译过程只需要不到 1 分钟。但是,对于一个只有 5 到 6 倍大的简单静态数组,为什么要花费超过 25 倍的时间呢?

数组定义如下:

var myBigArray: NSArray = [
    ["Value 1","Attribute 1","Attribute 2","Attribute 3"],
    ["Value 2","Attribute 1","Attribute 2","Attribute 3"],
    ["Value 3","Attribute 1","Attribute 2","Attribute 3"],
    ["Value 4","Attribute 1","Attribute 2","Attribute 3"],
    ["Value 5","Attribute 1","Attribute 2","Attribute 3"],
    ....
]

编译性能是Swift的早期问题之一。它应该在最新的 Xcode beta 中更快(截至目前为 6.3 beta 2)。 试试看,如果更好,那么你只需要等到 6.3 是当前的稳定版本。

如果数组那么大,您不应该对其进行硬编码。最好使用另一种方法,例如读取 CSV/JSON 文件或 CoreData。但是,后者可能已经有点矫枉过正了。

另一种方法是:如果数组像您展示的那样是可预测的,则在线生成它(即在 运行 时间)而不是离线生成它。