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.heightCGFloat类型、data[i]Double类型,Xcode还检查不出来,然后Xcode就崩了。

为了让Xcode能够更加容易的检查出错误,把这个计算公式提取出来到单独的方法中即可

private func getHeight(overallHeight: CGFloat, value: Double, offset: Double = 50) -> CGFloat {
    return CGFloat(Double(overallHeight) / maxDataValue * value - offset)
}

写的不是很详细,道理就是这么一个道理,检查代码!

上一篇下一篇

猜你喜欢

热点阅读