Рассмотрите следующее.Предупреждение при переопределении открытого var внутри расширения fileprivate в swift
fileprivate extension UIButton {
override open var isSelected: Bool {
didSet {
self.titleLabel?.font = isSelected ? UIFont(name: "HelveticaNeue-Medium", size: 14) : UIFont(name: "HelveticaNeue-Light", size: 14)
}
}
}
Через некоторое время появляется предупреждение в Xcode, который просит меня изменить «открыть» для fileprivate. Конечно, если я это сделаю, то я не переопределяю одну и ту же переменную isSelected
от UIButton, и я получаю сообщение об ошибке.
Является ли это ошибкой XCode? Я не могу сделать расширение общедоступным или внутренним, так как поведение изменит все UIButtons
в приложении. Любые идеи?
Update:
Какое точное предупреждение вы получили? – TheAmateurProgrammer
Декларация совершенно верна и работает по назначению. Предупреждение неверно. –
Предупреждающее сообщение неверно из-за ошибки в файле сообщений компилятора, это должно быть «Объявление OPEN var в расширении fileprivate», см. Http://stackoverflow.com/questions/40983010/cannot-override-open-method- объявленный в классе-extension-in-another-module-swift для аналогичной проблемы. В качестве решения вы можете удалить 'fileprivate' из' extension'. –