From d1fbb196bfde3be5843f9f670d2aca1bcf7f3544 Mon Sep 17 00:00:00 2001 From: Marcus Kida Date: Sat, 26 Mar 2016 20:11:37 +1100 Subject: [PATCH] Make used `NSBundle` overridable --- Classes/CoreDataManager.h | 1 + Classes/CoreDataManager.m | 11 +++++++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/Classes/CoreDataManager.h b/Classes/CoreDataManager.h index 501c39f..28228fa 100644 --- a/Classes/CoreDataManager.h +++ b/Classes/CoreDataManager.h @@ -31,6 +31,7 @@ @property (copy, nonatomic) NSString *databaseName; @property (copy, nonatomic) NSString *modelName; +@property (strong, nonatomic) NSBundle *bundle; + (id)instance DEPRECATED_ATTRIBUTE; + (instancetype)sharedManager; diff --git a/Classes/CoreDataManager.m b/Classes/CoreDataManager.m index aad793e..71548d7 100644 --- a/Classes/CoreDataManager.m +++ b/Classes/CoreDataManager.m @@ -47,7 +47,7 @@ + (instancetype)sharedManager { #pragma mark - Private - (NSString *)appName { - return [[NSBundle bundleForClass:[self class]] infoDictionary][@"CFBundleName"]; + return [self.bundle infoDictionary][@"CFBundleName"]; } - (NSString *)databaseName { @@ -80,7 +80,7 @@ - (NSManagedObjectContext *)managedObjectContext { - (NSManagedObjectModel *)managedObjectModel { if (_managedObjectModel) return _managedObjectModel; - NSURL *modelURL = [[NSBundle bundleForClass:[self class]] URLForResource:[self modelName] withExtension:@"momd"]; + NSURL *modelURL = [self.bundle URLForResource:[self modelName] withExtension:@"momd"]; _managedObjectModel = [[NSManagedObjectModel alloc] initWithContentsOfURL:modelURL]; return _managedObjectModel; } @@ -111,6 +111,13 @@ - (BOOL)saveContext { return YES; } +- (NSBundle *)bundle { + if (_bundle) return _bundle; + + _bundle = [NSBundle bundleForClass:self.class]; + + return _bundle; +} #pragma mark - SQLite file directory