That's a great question! To be honest, both approaches are acceptable. Aaron Hillegrass (who co-authors the BNR books) is a very well respected developer (who even used to train Apple engineers), and obviously the Apple sample code you looked at is 'from the horse's mouth', so to speak.
Why does Apple suggest you use a separate data controller in their app? Well, if your data controller conforms to the relevant protocols you could plug it straight into something like a UITableView
. If you were writing a universal iPad / iPhone app that had different views for the two devices then this could be quite useful. This is also quite useful if you're working with storyboards. As Apple say:
A data controller class allows other objects in the app to access objects [...] without needing to know anything about how the data model is implemented.
But this can be overkill: there are plenty of apps that don't use this pattern, and they throw that logic into the view controller itself. There are pros and cons to both. To put it another way: as you navigate around the sample code Apple put on their developer website you'll find plenty of apps that don't follow the pattern Apple suggest in the 'Your Second iOS App' tutorial!