UIScrollView имеет свойство делегата, которое соответствует UIScrollViewDelegate
protocol UIScrollViewDelegate : NSObjectProtocol {
//...
}
class UIScrollView : UIView, NSCoding {
unowned(unsafe) var delegate: UIScrollViewDelegate?
//...
}
UICollectionView переопределяет это свойство другим типом UICollectionViewDelegate
protocol UICollectionViewDelegate : UIScrollViewDelegate, NSObjectProtocol {
//...
}
class UICollectionView : UIScrollView {
unowned(unsafe) var delegate: UICollectionViewDelegate?
//...
}
Когда я пытаюсь переопределить делегат UIScrollViews с моим протоколом, например:
protocol MyScrollViewDelegate : UIScrollViewDelegate, NSObjectProtocol {
//...
}
class MyScrollView: UIScrollView {
unowned(unsafe) var delegate: MyScrollViewDelegate?
}
компилятор дает мне два предупреждения:
- Свойство 'delegate' с типом 'MyScrollViewDelegate'? не может переопределить свойство с типом 'UIScrollViewDelegate?'
- "unowned" не может применяться к типу неклассов "MyScrollViewDelegate?"
Как я могу подклассифицировать UIScrollView и переопределить тип свойства делегата (т.е. использовать пользовательский протокол делегатов)?