The process of providing rows to a UITableView in Cocoa Touch (the collection of frameworks used to build iOS apps) is different from the typical procedural programming task. In a procedural design, you tell the table view what it should display. In Cocoa Touch, the table view asks another object – its dataSource – what it should display. In this case, the ItemsViewController is the data source, so it needs a way to store item data.
You are going to use an array to store the Item instances, but with a twist. The array that holds the Item instances will be abstracted into another object – an ItemStore (Figure 10.6).
Figure 10.6 Homepwner object diagram