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