我在这一行收到SwiftLint警告:
return UIEdgeInsetsMake(topInset, leftInset, bottomInset, rightInset)
这是警告:
传统构造函数违规:Swift构造函数优先于 传统的便利功能。 (legacy_constructor)
我也在这条线上收到警告:
return CGRectInset(bounds, insetX, insetY)
Legacy CGGeometry函数违规:Struct扩展属性和 方法优于传统功能 (legacy_cggeometry_functions)
UIEdgeInsetsMake
和CGRectInset
的什么是Swift版本?
答案 0 :(得分:10)
Swift希望您更新这些类型的新struct初始值设定项,而不是旧的C构造函数。因此,您的插入初始值设定项将更改为:
return UIEdgeInsets(top: topInset, left: leftInset, bottom: bottomInset, right: rightInset)
CGRectInset
C方法已更改为CGRect
结构上的方法。
return bounds.insetBy(dx: insetX, dy: insetY)