It is an object that acts in coordination with, on behalf of, other objects when those objects encounter an event in a program.

If you want to retain a delegate, it can be retained. However, the rule is not to retain it because it must e already retained you will avoid unnecessary retain cycles.

BY Best Interview Question ON 13 Jan 2019