В swift 2.0 добавили возможность расширить не конкретный класс, а протокол, добавив методы и свойства
1 2 3 4 5 6 7 8 |
protocol RandomNumberGenerator { func random() -> Double } extension RandomNumberGenerator { func randomBoll() -> Bool { return random() > 0.5 } } |
Таким образом все типы, которые будут реализовывать этот протокол — получат доступ к методу из расширения.
1 2 3 4 5 6 7 8 |
class DumbRandom : RandomNumberGenerator { func random() -> Double { return 0.5 } } var rnd = DumbRandom() rnd.randomBoll() |