I'm now developing an app with core data on iPhone. After reading many projects about core data, I find that core data code is embedded into viewController code in all of there projects. for example:
@interface MyAppMasterViewController : UITableViewController <NSFetchedResultsControllerDelegate>
@property (strong, nonatomic) MyAppDetailViewController *detailViewController;
@property (strong, nonatomic) NSFetchedResultsController *fetchedResultsController;
@property (strong, nonatomic) NSManagedObjectContext *managedObjectContext;
I want to split all code about core data from viewController, and create a special storage class. what's more, provide some method to package core data api, for example:
@interface MyAppMasterViewController : UITableViewController
...
...
@interface MyAppStorageClass : NSObject <NSFetchedResultsControllerDelegate>
@property (strong, nonatomic) NSFetchedResultsController *fetchedResultsController;
@property (strong, nonatomic) NSManagedObjectContext *managedObjectContext;
(Note *)createNote;
(BOOL)deleteNote;
I think, if one day, I don't want to use core data to store my project, I can replace it with low cost.
All above, is that right? and can I do this?