2015-08-17 10 views
7

Per le chiamate di metodo con i nomi dei parametri esterni posso cmd -click in Xcode su ogni nome di parametro per passare alla definizione del metodo. Ad esempio, in"Vai a definizione" per i metodi senza i nomi dei parametri esterni

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

un cmd click sul "conteggio" o "repeatedValue" salta direttamente al metodo di inizializzazione Array

init(count: Int, repeatedValue: Element) 

Tuttavia, non ho trovato un modo per fare lo stesso per i metodi chiamate senza i nomi dei parametri esterni, come in

let c = Array("abc".characters) 

Certo che posso occhiata che il metodo characters restituisce un String.CharacterView che a sua volta conforme alla SequenceType, quindi questo chiamerò il Array inizializzatore

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

ma mi chiedo se qualcuno ha trovato un salto diretta" per definizione "metodo per questa situazione.

Ciò sarebbe molto utile se un tipo ha molti metodi di inizializzazione sovraccaricati (senza nomi di parametri esterni), per determinare quale viene effettivamente chiamato.

Gli esempi precedenti sono da Swift 2/Xcode 7 beta, ma il problema non è legato a una versione speciale di Swift/Xcode.

(Pubblicato anche presso l'Apple Developer Forum:. https://forums.developer.apple.com/thread/12687)

+0

Non si può fare clic su "Array"? Non ho mai pensato di cliccare sui nomi dei parametri e ho sempre cliccato sulla parte esterna al paren. (Suppongo che in questo caso vada solo alla dichiarazione della classe e non all'inizializzatore specifico.) – nhgrif

+0

@nhgrif: Esattamente, cmd-clic su "Array" passa a 'struct pubblico Array : ...', che non è quello che sto cercando. –

risposta

5

Dovete fare un certo lavoro:

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

Usa initializer expression, quindi cmd + clic su di esso.

+0

Ecco, grazie! Funziona con Swift 1.2 e 2.0. - (Perché non ci ho pensato? :) –

Problemi correlati