In an application that uses table views to present managed objects to the user, you want to be able to fetch and present the data in a more fluid and natural way than managing your data manually.
Use fetched results controllers, which are instances of
Fetched results controllers work in the same way as table views. Both have sections and rows. A fetched results controller can read managed objects from a managed object context and separate them into sections and rows. Each section is a group (if you specify it) and each row in a section is a managed object. You can then easily map this data to a table view and display it to the user. There are a few very important reasons why you might want to modify your application to use fetched results controllers:
After a fetched results controller is created on a managed
object context, any change (insertion, deletion, modification,
etc.) will immediately be reflected on the fetched results
controller as well. For instance, you could create your fetched
results controller to read the managed objects of the
Person entity. Then in some other place
in your application, you might insert a new
Person managed object into the context
(the same context the fetched results controller was created on).
Immediately, the new managed object will become available in the
fetched results controller. This is just magical!
With a fetched results controller, you can manage ...