2015-08-17 11 views
7

Dla wywołań metod z zewnętrznymi nazwami parametrów Mogę cmd -kliknij Xcode na dowolnej nazwie parametru, aby przejść do definicji metody. Dla przykład w"Skok do definicji" dla metod bez zewnętrznych nazw parametrów

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

cmd -Kliknij na „count” lub „repeatedValue” przeskakuje bezpośrednio do sposobu Array inicjatora

init(count: Int, repeatedValue: Element) 

Jednak nie znalazłem drogę do zrób to samo dla wywołań metod bez zewnętrznych nazw parametrów, jak w

let c = Array("abc".characters) 

Oczywiście mogę odnośnika że metoda characters zwraca String.CharacterView co z kolei zgodny SequenceType, więc ta wywoła Array initializer

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

ale zastanawiam się, czy ktoś znalazł bezpośredni „skok do definicji "metoda dla tej sytuacji.

Byłoby to bardzo przydatne, jeśli typ ma wiele przeciążonych metod inicjowania (bez zewnętrznych nazw parametrów), aby określić, który z nich jest rzeczywiście wywoływany.

Powyższe przykłady pochodzą z wersji beta Swift 2/Xcode 7, ale problem nie dotyczy wersji związanej ze specjalną wersją Swift/Xcode.

(pisał także na forach dewelopera firmy Apple. https://forums.developer.apple.com/thread/12687)

+0

Nie możesz kliknąć "Array"? Nigdy nawet nie pomyślałem o kliknięciu nazw parametrów i zawsze kliknąłem na część poza parens. (Chyba w tym przypadku po prostu idzie do deklaracji klasy, a nie do konkretnego inicjalizatora.) – nhgrif

+0

@nhgrif: Dokładnie, kliknięcie cmd na "Array" przeskakuje do 'public struct Array : ...', to nie jest czego szukam. –

Odpowiedz

5

Musisz popracować:

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

Korzystając initializer expression, następnie cmd + kliknij na nią.

+0

To wszystko, dzięki! Współpracuje z Swift 1.2 i 2.0. - (Dlaczego o tym nie pomyślałem? :) –

Powiązane problemy