Быстрое расширение UITextField не будет компилироваться на быстрых 1.2 и xcode6.3

После обновления xCode 6.3 у меня возникла эта проблема: «MyUItextViewExtension.swift: xx: xx: Method» editRectForBounds 'с селектором Objective-C' editRectForBounds: 'конфликтует с предыдущим объявлением с тем же селектором Objective-C "

Мой код Swift:

extension UITextField{ func editingRectForBounds(bounds: CGRect) -> CGRect{ if self.leftView != nil { let textFieldPadding : CGFloat = 24.0 return CGRectMake(bounds.origin.x + textFieldPadding, bounds.origin.y, bounds.size.width+textFieldPadding*2, bounds.size.height) } else { return textRectForBounds(bounds) } } func textRectForBounds(bounds: CGRect) -> CGRect { if self.leftView != nil { let textFieldPadding : CGFloat = 24.0 return CGRectMake(bounds.origin.x + textFieldPadding, bounds.origin.y, bounds.size.width+textFieldPadding*2, bounds.size.height) } else { let textFieldPadding : CGFloat = 8.0 return CGRectMake(bounds.origin.x + textFieldPadding, bounds.origin.y, bounds.size.width+textFieldPadding*2, bounds.size.height) } } } 

Я не могу понять причину этой ошибки. В проекте не определена другая категория расширения на UITextField …

editingRectForBounds уже существует в UITextField, поэтому вы должны, вероятно, override его.

Из документации :

Вы не должны вызывать этот метод напрямую. Если вы хотите предоставить другой текст для редактирования, вы можете переопределить этот метод и вернуть этот прямоугольник.

РЕДАКТИРОВАТЬ:

Я раньше не понимал, что вы хотите использовать это в расширении . Опять же, если я верю в документацию и если я не ошибаюсь на этот раз о том, что вы хотите, есть проблема:

Вы не можете использовать расширения для переопределения существующих методов или свойств в типах Objective-C.

Чтобы добавить к существующим ответам – Xcode 6.3 и Swift 1.2 более строгие в том, что вам разрешено и что не делать. Apple быстро подтянулась и, вероятно, вы ушли с чем-то, что было «плохо», но предыдущие версии Xcode не поймали.

вы можете переопределить функцию, но ее необходимо объявить общедоступной. Ошибка

Метод переопределения экземпляра должен быть таким же доступным, как и объявление, которое оно переопределяет

Вот пример, над которым я работал над расширением UITextField

 override public func becomeFirstResponder() -> Bool