通过此函数的所有路径都会调用自身

All paths through this function will call itself

我通过以下两种方式为 UIColor 创建了一个 convenience init

1.

extension UIColor {
    convenience init(_ red: CGFloat, _ green: CGFloat, _ blue: CGFloat, alpha: CGFloat = 1) {
        self.init(red: red/255, green: green/255, blue: blue/255, alpha: alpha)
    }
}

2.

extension UIColor {
    convenience init(_ red: CGFloat, _ green: CGFloat, _ blue: CGFloat, alpha: CGFloat = 1) {
        self.init(red/255, green/255, blue/255, alpha: alpha)
    }
}

对于第二种方式,我收到警告:"All paths through this function will call itself"。 所以我无法理解为什么会出现第二种方式的警告?

在第二个 init 中,您正在对同一个 init(_:_:_:alpha:).

进行 递归调用
self.init(red/255, green/255, blue/255, alpha: alpha)

以上语句没有调用UIColor指定初始化器。它会反复调用自己。

相反,您必须像第一种情况那样调用 init(red:green:blue:alpha:)