forked from magicalpanda/MagicalRecord
/
MagicalRecord+Setup.m
78 lines (60 loc) · 2.78 KB
/
MagicalRecord+Setup.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
//
// MagicalRecord+Setup.m
// Magical Record
//
// Created by Saul Mora on 3/7/12.
// Copyright (c) 2012 Magical Panda Software LLC. All rights reserved.
//
#import "MagicalRecord+Setup.h"
#import "NSManagedObject+MagicalRecord.h"
#import "NSPersistentStoreCoordinator+MagicalRecord.h"
#import "NSManagedObjectContext+MagicalRecord.h"
@implementation MagicalRecord (Setup)
+ (void) setupCoreDataStack
{
[self setupCoreDataStackWithStoreNamed:[self defaultStoreName]];
}
+ (void) setupAutoMigratingCoreDataStack
{
[self setupCoreDataStackWithAutoMigratingSqliteStoreNamed:[self defaultStoreName]];
}
+ (void) setupAutoMigratingCoreDataStackWithType:(NSString*)storeType
{
[self setupCoreDataStackWithAutoMigratingCustomStoreNamed:[self defaultStoreName] andCustomStoreType:storeType];
}
+ (void) setupCoreDataStackWithType:(NSString*)storeType
{
[self setupCoreDataStackWithStoreNamed:[self defaultStoreName] andCustomStoreType:storeType];
}
+ (void) setupCoreDataStackWithStoreNamed:(NSString *)storeName andCustomStoreType:(NSString*)storeType {
if ([NSPersistentStoreCoordinator MR_defaultStoreCoordinator] != nil) return;
NSPersistentStoreCoordinator *coordinator = [NSPersistentStoreCoordinator MR_coordinatorWithCustomStoreNamed:storeName storeType:storeType];
[NSPersistentStoreCoordinator MR_setDefaultStoreCoordinator:coordinator];
[NSManagedObjectContext MR_initializeDefaultContextWithCoordinator:coordinator];
}
+ (void) setupCoreDataStackWithStoreNamed:(NSString *)storeName
{
[self setupCoreDataStackWithStoreNamed:storeName andCustomStoreType:nil];
}
+ (void) setupCoreDataStackWithAutoMigratingCustomStoreNamed:(NSString *)storeName andCustomStoreType:(NSString*)storeType
{
if ([NSPersistentStoreCoordinator MR_defaultStoreCoordinator] != nil) return;
if (!storeName) {
storeName = [self defaultStoreName];
}
NSPersistentStoreCoordinator *coordinator = [NSPersistentStoreCoordinator MR_coordinatorWithAutoMigratingCustomStoreNamed:storeName storeType:storeType];
[NSPersistentStoreCoordinator MR_setDefaultStoreCoordinator:coordinator];
[NSManagedObjectContext MR_initializeDefaultContextWithCoordinator:coordinator];
}
+ (void) setupCoreDataStackWithAutoMigratingSqliteStoreNamed:(NSString *)storeName
{
[self setupCoreDataStackWithAutoMigratingCustomStoreNamed:storeName andCustomStoreType:NSSQLiteStoreType];
}
+ (void) setupCoreDataStackWithInMemoryStore;
{
if ([NSPersistentStoreCoordinator MR_defaultStoreCoordinator] != nil) return;
NSPersistentStoreCoordinator *coordinator = [NSPersistentStoreCoordinator MR_coordinatorWithInMemoryStore];
[NSPersistentStoreCoordinator MR_setDefaultStoreCoordinator:coordinator];
[NSManagedObjectContext MR_initializeDefaultContextWithCoordinator:coordinator];
}
@end