2015-08-17 5 views
7

Для вызовов метода с внешними именами параметров я могу CMD -Щелкните в Xcode на любом имя параметра, чтобы перейти к определению метода. Для например, в«Перейти к определению» для методов без имен внешних параметров

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

CMD -Click на «кол» или «repeatedValue» переходит непосредственно к методу Array инициализатора

init(count: Int, repeatedValue: Element) 

Однако я не нашел способ сделать то же самое для методов вызывает без имен внешних параметров, как в

let c = Array("abc".characters) 

Конечно, я могу Lookup, что метод characters возвращает String.CharacterView, который в свою очередь соответствует к SequenceType, так что это будет называть Array Initializer

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)

+0

Не можете ли вы нажать «Массив»? Я даже не думал нажимать на имена параметров и всегда нажимал на часть за пределами parens. (Я думаю, в этом случае он просто переходит к объявлению класса, а не к определенному инициализатору.) – nhgrif

+0

@nhgrif: Точно, cmd-click на «Array» перескакивает в 'public struct Array : ...', то есть не что я ищу. –

ответ

5

Вы должны сделать некоторую работу:

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

Используйте initializer expression, затем CMD + нажмите на него.

+0

Вот и все, спасибо! Работает с Swift 1.2 и 2.0. - (Почему я не подумал об этом? :) –

Смежные вопросы