Что мне нужно - это реализовать метод делегирования для определенного NSObjectProtocol, который соответствует некоторому протоколу, но я стараюсь, не делаю это.Расширение протокола Swift2 NSObjectProtocol
Демо внизу
Обновление для более точного
============================== ===========================================
У меня есть один протокол PagedLoadable
, чтобы получить информацию о том, что нужно CollectionView, то extension NSObjectProtocol where Self: Delegatable
, автонастройки для объекта реализации PagedLoadable
protocol PagedLoadable {
var count: Int { get }
}
protocol Delegatable: UICollectionViewDelegate, UICollectionViewDataSource {
}
extension PagedLoadable where Self: Delegatable {
func numberOfSectionsInCollectionView(collectionView: UICollectionView) -> Int {
return count
}
func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return 1
}
func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
let cell = UICollectionViewCell()
return cell
}
}
class vc: UIViewController {
}
extension vc: PagedLoadable {
var count: Int {
return 1
}
}
extension vc: Delegatable {
}
Что ошибка вы получаете? –
Тип 'vc' не соответствует протоколу 'UICollectionViewDataSource' – InvokerLaw
Почему бы не определить прямое расширение для 'Delegatable'? – findall