2016-07-12 47 views
6

Questo è più di un problema fastidioso e cosmetico di qualsiasi altra cosa, ma ci sono alcuni problemi di coerenza con il completamento automatico in Xcode, e sarei molto grato se qualcuno ha una soluzione per esso .Prevenire i metodi di protocollo da mostrare due volte in completamento automatico


consideri un protocollo MyProtocol, che ha una proprietà e un metodo:

public protocol MyProtocol { 
    var variable: String { get } 
    func method() 
} 

e una classe A che adotta MyProtocol e implementa i requisiti al fine di conformarsi al protocollo:

public class A { ... } 

extension A: MyProtocol { 
    public var variable: String { get { return "String from A." } } 

    public func method() { 
     print("Method called.") 
    } 
} 

Il problema:

Quando si accede ai membri di un'istanza di A, metodi del protocollo mostrano due volte, a differenza delle proprietà mostrano solo una volta:

Se tutto è documentato nel codice, diventa chiaro che le proprietà del protocollo diventano nascosto, mentre i metodi del protocollo rimangono visibili nella funzione di completamento automatico. Lo stesso vale per le implementazioni predefinite dei metodi di protocollo, ancora visibili.

Un'altra cosa che rende questo problema ancora più particolare è che se un'istanza di ad es. A viene creato nello stesso file in cui viene dichiarata la classe, e i membri che dell'istanza sono accessibili all'interno dello stesso file così, allora il metodo protocollo scompare dal completamento automatico:

Ma, se la stessa istanza (che è ora sull'ambito globale) viene richiamato da un altro file, il metodo del protocollo riappare in completamento automatico.

Quindi, la mia domanda è: qualcuno sa come nascondere i metodi di protocollo duplicati dal completamento automatico?


Versioni:

Xcode: 7.3 (7D175)

Swift: 2.2

risposta

5

questo sembra essere un bug. rdar://21701167 è stato registrato l'anno scorso.

Potrebbe essere causato da:

  • duplicati provenienti da documento aggiorna Xcode

  • duplicati dal plugin del documento 3a parte Xcode

  • l'installazione di due versioni di Xcode side-by-side

È un nyone ha davvero ragione. È un po 'fastidioso. A volte ottengo 3 o 4 duplicati.Sto usando due versioni di Xcode e stavo usando un plugin per documenti di terze parti.

+0

Grazie per il vostro contributo! Questo problema potrebbe rientrare in questo stesso bug, ma il comportamento sembra più irregolare di quello descritto nella segnalazione di bug. Non ho due versioni di Xcode, non sto usando una versione Beta, e il mio problema non appare nell'ambito privato. – xoudini