SwiftUI - SourceKitService或swift
2021-09-07 本文已影响0人
chocoford
其实就一点,检查你的代码。
我的问题是,在View
的参数中,写了稍微有点复杂的计算式子,导致忽略了其中类型不匹配的问题,然后SourceKitService
就会拼命check你的式子,导致内存爆炸。
原来
.frame(width: ...,
height: (metrics.size.height - indicatorHeight) / maxDataValue) * data[i] - 15)
主要就是这个height
参数里,我传了不同类型的参数进去。
metrics.size.height
是CGFloat
类型、data[i]
是Double
类型,Xcode还检查不出来,然后Xcode就崩了。
为了让Xcode能够更加容易的检查出错误,把这个计算公式提取出来到单独的方法中即可
private func getHeight(overallHeight: CGFloat, value: Double, offset: Double = 50) -> CGFloat {
return CGFloat(Double(overallHeight) / maxDataValue * value - offset)
}
写的不是很详细,道理就是这么一个道理,检查代码!