@@ -53,27 +53,29 @@ extension NSManagedObject: Stored {}
53
53
*/
54
54
public class CoreDataDBClient {
55
55
56
- public static let modelName = " CoreData "
56
+ private var modelName : String
57
+ private var bundle : Bundle
57
58
58
- public init ( ) {
59
+ public init ( forModel modelName: String = " CoreData " , in bundle: Bundle = Bundle . main) {
60
+ self . modelName = modelName
61
+ self . bundle = bundle
59
62
}
60
63
61
64
// MARK: - CoreData stack
62
65
63
66
fileprivate lazy var applicationDocumentsDirectory : URL = {
64
67
let urls = FileManager . default. urls ( for: . documentDirectory, in: . userDomainMask)
65
- return urls [ urls. count- 1 ]
68
+ return urls [ urls. count - 1 ]
66
69
} ( )
67
70
68
71
fileprivate lazy var managedObjectModel : NSManagedObjectModel = {
69
- let bundle = Bundle ( for: type ( of: self ) )
70
- let modelURL = bundle. url ( forResource: CoreDataDBClient . modelName, withExtension: " momd " ) !
72
+ let modelURL = self . bundle. url ( forResource: self . modelName, withExtension: " momd " ) !
71
73
return NSManagedObjectModel ( contentsOf: modelURL) !
72
74
} ( )
73
75
74
76
fileprivate lazy var persistentStoreCoordinator : NSPersistentStoreCoordinator = {
75
77
let coordinator = NSPersistentStoreCoordinator ( managedObjectModel: self . managedObjectModel)
76
- let url = self . applicationDocumentsDirectory. appendingPathComponent ( " \( CoreDataDBClient . modelName) .sqlite " )
78
+ let url = self . applicationDocumentsDirectory. appendingPathComponent ( " \( self . modelName) .sqlite " )
77
79
do {
78
80
try coordinator. addPersistentStore ( ofType: NSSQLiteStoreType, configurationName: nil , at: url, options: nil )
79
81
} catch {
0 commit comments