Я использую два модуля: DropDown
и SwiftyUtils
.
DropDown
добавляет подкласс UIView
под названием DropDown
. Класс DropDown
определяет собственное свойство width
. Вместо установки frame
код клиента должен установить ширину выпадающего меню, используя это свойство. Он определяется следующим образом:
public var width: CGFloat? {
didSet { setNeedsUpdateConstraints() }
}
SwiftyUtils
, с другой стороны, добавил расширение ко всем UIView
s. В расширении также есть свойство width
. Это свойство width
просто возвращает frame.width
, чтобы люди могли писать меньше кода. Он определяется следующим образом:
public var width: CGFloat {
get { return frame.width }
set { frame = frame.with(width: newValue) } // frame.with() is defined in SwiftyUtils as well
}
Проблема возникает, когда я пытаюсь установить ширину меню DropDown
, используя свойство width
, определенное в DropDwon
. Компилятор считает, что я имею в виду свойство width
, определенное в расширении в модуле SwiftyUtils
.
Как я могу сообщить компилятору, что я имею в виду width
в DropDown
, а не width
в SwiftyUtils
?