Xcode 8.3 中的构建时间太长,特定文件中有 swift 3
Build time is too long in Xcode 8.3 with swift 3 in particular file
我正在使用 Xcode 8.3
和 Swift 3
。我已经编写了一个名为 pdfFromData(data:)
的方法来从 Data
形成 pdf document
,每当我构建我的项目时,由于这种方法它没有得到构建,意味着编译器得到了 stopped/hanged 当它开始编译特定文件时,我在其中编码了 pdfFromData(data:)
方法(在 Xcode 8.2
和 Swift 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`
}
NSData
和 CFData
是免费桥接。
如有任何疑问请告诉我
我正在使用 Xcode 8.3
和 Swift 3
。我已经编写了一个名为 pdfFromData(data:)
的方法来从 Data
形成 pdf document
,每当我构建我的项目时,由于这种方法它没有得到构建,意味着编译器得到了 stopped/hanged 当它开始编译特定文件时,我在其中编码了 pdfFromData(data:)
方法(在 Xcode 8.2
和 Swift 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`
}
NSData
和 CFData
是免费桥接。
如有任何疑问请告诉我