Understanding protocols
Protocols are like blueprints that determine what properties or methods an object should have. After you've declared a protocol, classes, structures, and enumerations can adopt this protocol, and provide their own implementation for the required properties and methods.
Here's what a protocol declaration looks like:
protocol ProtocolName {
   var readWriteProperty1 {get set}
   var readOnlyProperty2 {get}
   methodName1()
   methodName2()
}
			Just like classes and structures, protocol names start with an uppercase letter.  Properties need to be declared using the var keyword. You use {get set} if you want a property that can be read from or written to, and {get} if you want a read-only property. Note that you just specify property and method names. The implementation is done within the adopting class, structure, or enumeration.
Important Information
For more information on protocols...