Skip to content

Instantly share code, notes, and snippets.

@sooop
Created May 28, 2013 02:33
Show Gist options
  • Save sooop/5660188 to your computer and use it in GitHub Desktop.
Save sooop/5660188 to your computer and use it in GitHub Desktop.
AppDelegate For CoreData Application
/* 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