【问题标题】:"Jump to definition" for methods without external parameter names没有外部参数名称的方法的“跳转到定义”
【发布时间】:2015-08-17 11:14:41
【问题描述】:

对于带有外部参数名称的方法调用我可以cmd-在Xcode 中单击任何参数名称以跳转到方法定义。为了 例如,在

let a = Array(count: 3, repeatedValue: 0)  

一个cmd——点击“count”或者“repeatedValue”直接跳转到Array初始化方法

init(count: Int, repeatedValue: Element)  

但是,我还没有找到对方法调用执行相同操作的方法 没有外部参数名称,如

let c = Array("abc".characters)

当然我可以查到characters方法返回一个String.CharacterView,它又符合SequenceType,所以这将调用Array初始化器

init<S : SequenceType where S.Generator.Element == _Buffer.Element>(_ s: S)  

但我想知道是否有人找到了直接“跳转到定义”方法 对于这种情况。

如果一个类型有许多重载的 init 方法(没有外部参数名称),这将非常有用,以确定实际调用的是哪一个。

以上示例来自 Swift 2/Xcode 7 beta,但问题不在于 绑定到一个特殊的 Swift/Xcode 版本。

(也发布在 Apple 开发者论坛:https://forums.developer.apple.com/thread/12687。)

【问题讨论】:

  • 不能点击“阵列”吗?我从来没有想过点击参数名称,总是点击括号外的部分。 (我想在这种情况下,它只是进入类声明而不是特定的初始化程序。)
  • @nhgrif: 没错,cmd-click on "Array" 会跳转到public struct Array&lt;Element&gt; : ...,这不是我要找的。​​span>

标签: xcode swift


【解决方案1】:

你必须做一些工作:

let c = Array.init("abc".characters)
//           ^^^^^

使用initializer expression,然后cmd + 点击它。

【讨论】:

  • 就是这样,谢谢!适用于 Swift 1.2 和 2.0。 ——(我怎么没想到呢?:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-10-12
  • 1970-01-01
  • 1970-01-01
  • 2021-09-16
  • 1970-01-01
  • 2011-07-24
  • 1970-01-01
相关资源
最近更新 更多