I used the built-in view controllers to occasionally load reusable table views. I have found that this is useful sometimes, but not always. Communication between them can be cumbersome, for example, if you want the integrated controller to connect back to the container. Delegation is simple but cumbersome. It also limits you to iOS 6, if I remember that the correct ones of iOS 5 and below do not support the built-in controllers.
If he simply adds methods, you can use a category to store additional methods. I do a lot in NSManagedObjects that I donāt want to subclass, and if I regenerate NSManagedObject from the datamodel, I wonāt lose the code in my categories. Gives me added functionality, such as computed fields or conversion methods, without a subclass. If you do not need these methods for a specific instance, simply exclude the link to the category.
A subclass is never bad, although IMO.
source share