The simplest answer is that most programs will not use most delegate methods, so instead of developers creating empty methods that are not used, methods are assigned as optional and can only be used when you need them. The reason is because there are so many methods, because the SDK developers have provided many things you can do that are necessary for a reliable device such as a smartphone.
source
share