title: What is the difference between protocol, extension and category in IOS development? And how to use them appropriately?
body: <p>Also, is there any difference for these 3 things between Swift and Objective-C languages? </p>