为什么Xcode并不总是显示参数默认值的提示?

盗窃罗伯克

Xcode使用默认参数值显示功能/方法的提示时,是否有任何规则?

这就是我的意思。例如,在具有如下签名UIViewControllerpresent()方法中:

func present(
    _ viewControllerToPresent: UIViewController,
    animated flag: Bool,
    completion: (() -> Void)? = nil
)

当我在Xcode中键入其名称时,仅提示完整的方法声明,包括completion参数,可以省略:

  1. 存在(viewControllerToPresent:UIViewController,动画:Bool,完成:(()-> Void)?)

但是,让我们创建present方法的副本:

func presentCopy(
    _ viewControllerToPresent: UIViewController,
    animated flag: Bool,
    completion: (() -> Void)? = nil
) {...}

这次,Xcode通知了该方法的两个可能版本:

  1. presentCopy(viewControllerToPresent:UIViewController,动画:Bool)

  2. presentCopy(viewControllerToPresent:UIViewController,动画:Bool,完成:(()-> Void)?)

这种不一致来自何处?

普奈特·夏尔马

我猜这是因为您是在纯Swift类中定义方法,而presentof的方法UIViewController是在Objective-C类中定义的。

在Objective-C中,没有默认参数值的概念。

甚至相反。如果presentCopy在Obj-C类内部访问方法,则方法声明将具有所有值,并且将只有一个方法。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么我的Enum参数返回到默认值?

为什么可选参数的默认值必须为常数?

为什么我的argparse不显示默认值?

为什么这个简单的switch语句总是运行默认值

为什么`default(None)`并不总是显示为`None`

ListView并不总是显示值

显示默认值的powershell强制参数

synclient参数的默认值是什么?

为什么需要默认值呢?

为什么nullglob不是默认值?

为什么函数的默认值是1?

为什么重新分配参数不适用于具有默认值的参数?

为什么即使指定了参数,argparse仍包含可选参数的默认值?

为什么不能将GETDATE()用作过程参数的默认值或EXECUTE语句中的值?

为什么我总是在反应器中获得减速器中的默认值而不是当前值?

为什么我的 Fragment 总是只从 jetPack dataStore 获得默认值,即使它(值)已经改变了?

当我包含默认值时,为什么 Bootstrap Select 不显示选定的值?

为什么C ++不允许将函数参数用作默认值?

给定默认值时,为什么此模板参数推导失败?

为什么不能将默认值作为null以外的可选参数提供?

为什么不可能指定Scala varargs参数的默认值?

为什么我无法使用默认值获取参数长度?

为什么 Typescript 类中的箭头类成员函数无法识别参数属性的默认值?

为什么在控制台上不显示char默认值?

为什么 switch 语句在这个 C 计算器中显示默认值?

N + 1查询,其中“ n”部分并不总是存在,但我需要一个默认值

为什么我的收藏并不总是排序?

为什么 .loc 并不总是匹配列名?

为什么具有单个参数值的函数之后必须为每个参数指定默认值?