What is the best way to remove all subviews from you self.view?

Solution 1:

[self.view.subviews makeObjectsPerformSelector: @selector(removeFromSuperview)];

It's identical to your variant, but slightly shorter.

Solution 2:

self.view.subviews.forEach({ $0.removeFromSuperview() })

Identical version in Swift.