The document is a little too simple for me to get a full understand
A controller thus effectively has three modes of operation, determined by whether it has a delegate and whether the cache file
name is set.No tracking: the delegate is set to nil. The controller simply
provides access to the data as it was when the fetch was executed.Memory-only tracking: the delegate is non-nil and the file cache name
is set to nil. The controller monitors objects in its result set and
updates section and ordering information in response to relevant
changes.Full persistent tracking: the delegate and the file cache name are
non-nil. The controller monitors objects in its result set and updates
section and ordering information in response to relevant changes. The
controller maintains a persistent cache of the results of its
computation.
that’s what the documents said, so what does the ‘persistent cache’ do?
What is ‘the result of its computation’?
Is the cache only a matter of performance?
From the NSFetchedResultsController documentation:
The NSFetchResultsController is responsible for organizing the data into sections and ordering it for display by the UITableView, which require computations on the data. After each computation, the controller caches the results so that if the same data is to be redisplayed, the cached result can be returned without the need to perform the calculation again.
So yes, the cache aims to improve performance by eliminating redundant computations.