2016-07-12 2 views
6

Это скорее неприятная и косметическая проблема, чем что-либо еще, но в Xcode есть некоторые проблемы с консистентностью, и я бы очень признателен, если у кого-то есть решение для этого ,Предотвращение одновременного появления протокольных методов в автозаполнении


Рассмотрим протокол MyProtocol, который имеет свойство и метод:

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

и класс A который принимает MyProtocol и реализует требования для того, чтобы соответствовать протоколу:

public class A { ... } 

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

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

Проблема:

При обращении к членам экземпляра A, методы протокола показывает дважды, в то время как свойства появляются только один раз:

Если все документировано в коде, то становится ясно, что свойства протокольных скрытые, в то время как методы протокола остаются видимыми в автозаполнении. То же самое относится к стандартным реализациям методов протокола - все еще видимо.

Другая вещь, которая делает эту проблему еще более своеобразной, заключается в том, что если экземпляр, например, A создается в том же файле, в котором объявлен класс, и члены этого экземпляра доступны в том же файле, а также, то метод протокола исчезает из автозаполнения:

Но если тот же экземпляр (который теперь находится в глобальной области) вызывается из другого файла, метод протокола снова появляется в автозаполнении.

Итак, мой вопрос: кто-нибудь знает, как скрыть методы дублирования протокола от автозаполнения?


Версии:

Xcode: 7.3 (7D175)

Swift: 2.2

ответ

5

Это кажется ошибка. rdar://21701167 был подан в прошлом году.

Это может быть вызвано следующими причинами:

  • дубликаты, происходящими из обновлений документов Xcode

  • дубликатов от плагин документов третьей партии Xcode

  • установки две версии Xcode бока-бок

Это На самом деле, угадайте. Это раздражает. Иногда я получаю 3 или 4 дубликата.Я использую две версии Xcode, и я использовал плагин сторонних документов.

+0

Спасибо за ваш вклад! Эта проблема может подпадать под эту же ошибку, но поведение кажется более неустойчивым, чем поведение, описанное в отчете об ошибке. У меня нет двух версий Xcode, я не использую бета-версию, и моя проблема не появляется в частной области. – xoudini

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