Swift Programming 101: Mastering Protocols and Delegates (Part 1)
By Kevin McNeish
Protocols are a powerful, advanced tool that help make your apps easier to design and extend. They define standard behavior in classes that are not necessarily related. Protocols used together with delegates allow you to create classes with a well-balanced load of responsibilities.