当 Xcode 以默认参数值显示函数/方法的提示时,是否有任何规则?
这就是我的意思。例如,在UIViewController
有present()
这样签名的方法中:
func present(
_ viewControllerToPresent: UIViewController,
animated flag: Bool,
completion: (() -> Void)? = nil
)
当我在 Xcode 中输入它的名称时,我只会提示完整的方法声明,包括completion
参数,可以省略:
现在(viewControllerToPresent:UIViewController,动画:布尔,完成:(()-> Void)?)
但是,让我们创建present
方法的副本:
func presentCopy(
_ viewControllerToPresent: UIViewController,
animated flag: Bool,
completion: (() -> Void)? = nil
) {...}
这一次,Xcode 通知了该方法的两个可能版本:
presentCopy(viewControllerToPresent:UIViewController,动画:布尔)
presentCopy(viewControllerToPresent: UIViewController, 动画: Bool, 完成: (() -> Void)?)
这种不一致从何而来?