Xcode 8.3 中的构建时间太长,特定文件中有 swift 3

Build time is too long in Xcode 8.3 with swift 3 in particular file

我正在使用 Xcode 8.3Swift 3。我已经编写了一个名为 pdfFromData(data:) 的方法来从 Data 形成 pdf document,每当我构建我的项目时,由于这种方法它没有得到构建,意味着编译器得到了 stopped/hanged 当它开始编译特定文件时,我在其中编码了 pdfFromData(data:) 方法(在 Xcode 8.2Swift 3 中它工作正常)。每当我评论此方法并构建时,都意味着一切正常。

func pdfFromData(data: Data) -> CGPDFDocument? { // Form pdf document from the data.

    if let pdfData = data as? CFData {
        if let provider = CGDataProvider(data: pdfData) {
            let pdfDocument = CGPDFDocument(provider)
            return pdfDocument
        }
    }
    return nil

}

这个方法有什么问题?。我也想用这种方法构建我的项目。提前致谢。

我试过调试你的问题。这是我发现的:

if let pdfData = data as? CFData {

}

上面将 Data 类型的对象转换为 CFData 的行是构建花费太多时间的地方。

用以下代码替换它可以显着减少构建时间。

let pdfNsData: NSData = NSData(data: data) // convert `Data` to `NSData`

if let cfPdfData: CFData = pdfNsData as? CFData { 
// cast `NSData` to `CFData`

}

NSDataCFData 是免费桥接。

如有任何疑问请告诉我