Created
May 28, 2013 02:33
-
-
Save sooop/5660188 to your computer and use it in GitHub Desktop.
AppDelegate For CoreData Application
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* Appdelegate for coredata */ | |
#import <Foundation/Foundation.h> | |
#import <CoreData/CoreData.h> | |
@interface AppDelegate : NSObject <UIApplicationDelegate> | |
{ | |
UIWindow * _window; | |
NSManagedObjectModel * _managedObjectModel; | |
NSPersistentStoreCoordinator * _persistentStoreCoordinator; | |
NSManagedObjectContext * _managedObjectContext | |
} | |
@property (assign, nonatomic) IBOutlet UIWindow *window; | |
@property (retain, nonatomic) NSManagedObjectModel *managedObjectModel; | |
@property (retain, nonatomic) NSPersistentStoreCoordinator *persistentStoreCoordinator; | |
@property (retain, nonatomic) NSManagedObjectContext *managedObjectContext; | |
@end | |
@implementation AppDelegate | |
@synthesize window=_window, managedObjectContext=_managedObjectContext, managedObjectModel=_managedObjectModel, persistentStoreCoordinator=_persistentStoreCoordinator; | |
#pragma mark - dealloc | |
- (void)dealloc | |
{ | |
_window = nil; | |
[_managedObjectModel release]; | |
[_persistentStoreCoordinator release]; | |
[_managedObjectContext release]; | |
[super dealloc]; | |
} | |
#pragma mark - CoreData Preparation | |
- (NSManagedObjectModel *)managedObjectModel | |
{ | |
if(!_managedObjectModel) { | |
_managedObjectModel = [[NSManagedObjectModel mergedModelWithBundle:nil] retain]; | |
} | |
return _managedObjectModel; | |
} | |
- (NSPersistentStoreCoordinator *)persistentStoreCoordinator | |
{ | |
if(!_persistentStoreCoordinator) { | |
_persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:self.managedObjectModel]; | |
NSURL *documentPathURL = [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomain] lastObject]; | |
NSURL *storeURL = [documentPathURL URLByAppendingPathComponent:@"store.sqlite"]; | |
NSError *error = NULL; | |
if(![_persistentStoreCoordinator addPersistentStoreWithType:NSSQLStoreType configuration:nil URL:storeURL options:nil error:&error]) { | |
NSLog(@"Can't create store file"); | |
abort(); | |
} | |
} | |
return _persistentStoreCoordinator; | |
} | |
- (NSManagedObjectContext *)managedObjectContext | |
{ | |
if(!_managedObjectContext) { | |
_managedObjectContext = [[NSManagedObjectContext alloc] init]; | |
[_managedObjectContext setPersistentStoreCoordinator:self.persistentStoreCoordinator]; | |
} | |
return _managedObjectContext; | |
} | |
#pragma mark - Appliaction Delegate | |
- (BOOL) applicationDidFinishLaunchingWithOptions:(NSDictionary *)options { | |
/* init app */ | |
return YES; | |
} | |
/* in iOS use this AppDelegate method | |
- (BOOL) application:(UIApplication *) didFinishLaunchingWithOptions:(NSDictionary *)options | |
{ | |
return YES; | |
} | |
*/ |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment