두 개의 광고 모음 (DropDown
및 SwiftyUtils
)을 사용하고 있습니다.확장 프로그램이 액세스하려는 속성을 숨 깁니다. 해결 방법은 무엇입니까?
DropDown
은 DropDown
이라는 UIView
하위 클래스에 추가됩니다. DropDown
클래스는 자체 width
속성을 정의합니다. frame
을 설정하는 대신 클라이언트 코드는이 속성을 사용하여 드롭 다운 메뉴의 너비를 설정해야합니다. 그것은 다음과 같이 정의된다 :
public var width: CGFloat? {
didSet { setNeedsUpdateConstraints() }
}
SwiftyUtils
는 다른 한편으로는, 모든 UIView
들에 대한 확장을 추가했습니다. 확장 기능에는 width
속성도 있습니다. 이 속성은 사람들이 적은 코드를 작성할 수 있도록 단순히 frame.width
을 반환합니다. 다음과 같이 정의된다 : 나는 DropDwon
에 정의 된 width
속성을 사용하여 DropDown
의 메뉴 폭을 설정하려고하면
public var width: CGFloat {
get { return frame.width }
set { frame = frame.with(width: newValue) } // frame.with() is defined in SwiftyUtils as well
}
문제가 온다. 컴파일러는 width
속성이 SwiftyUtils
모듈의 확장에 정의 된 것을 의미한다고 생각합니다.
컴파일러에게 width
이 DropDown
이고 width
이 SwiftyUtils
이 아니라고 말할 수 있습니까?