Here's an Xcode 9 project written in Swift 4 that demonstrates protocol oriented programming and reference semantics.
I show you how to extend or enhance -- whichever term you prefer -- the UIView
classe from UIKit
using protocols.
The brevity of the code proves the power of protocols.
Here's what the app looks like: