MVC(S)
Controller
Model
External
Data
Store
View
Controller
Model
View
Slide 12
Slide 12 text
Store Interface
#import
@class CHItem;
@interface CHItemStore : NSObject
{
NSMutableArray *items;
}
// Access the singleton Store
+ (CHItemStore *)store;
// Access Store contents
- (NSArray *)allItems;
- (void)addItem:(CHItem *)item;
- (void)removeItem:(CHItem *)item;
// Persist Store contents
- (BOOL)save:(NSError *)err;
@end
Slide 13
Slide 13 text
Store Responsibilities
• Model Objects from Data Sources
• Handles Loading & Saving of Model
Objects
• Encapsulates Caching and Lazy
Fetching
Slide 14
Slide 14 text
Before & After
Store Controller
Fetches Models Controls Flow
Persists Models
Get, Update, Insert
using Store
Encapsulates Saving Requests Saving
Caches Data
Not concerned with
data caching
Slide 15
Slide 15 text
Extra Credit
• Asynchronous Data Requests
• Memory Management
• Caching
• Lazy Loading
Slide 16
Slide 16 text
Change Your
View
Slide 17
Slide 17 text
Third Wheel
Controller
View
Model View
External
Data
Store
Model
Slide 18
Slide 18 text
Frictionless
Controller
View
Model
View
External
Data
Store
Model
Slide 19
Slide 19 text
Benefits
• Reusable Views - Just add a Model
• ViewController as Conductor
• Interface with Store
• Handle User’s Input
Slide 20
Slide 20 text
Name Author URL
iOS Programming Joe Conway and
Aaron Hillegass
http://www.bignerdranch.com
Ubuntu Font
Family
Canonical, Ltd. http://font.ubuntu.com/
Unburdened ViewControllers
Jay Thrash :: jay.thrash@mac.com :: @jaythrash
Resources & Attributions