forked from LoopKit/Loop
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathPersistenceController.swift
33 lines (25 loc) · 1.35 KB
/
PersistenceController.swift
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
//
// PersistenceController.swift
// Loop
//
// Copyright © 2017 LoopKit Authors. All rights reserved.
//
import LoopKit
extension PersistenceController {
public class func controllerInAppGroupDirectory(isReadOnly: Bool = false) -> PersistenceController {
let appGroup = Bundle.main.appGroupSuiteName
guard let directoryURL = FileManager.default.containerURL(forSecurityApplicationGroupIdentifier: appGroup) else {
assertionFailure("Could not get a container directory URL. Please ensure App Groups are set up correctly in entitlements.")
return self.init(directoryURL: URL(fileURLWithPath: "/"))
}
let isReadOnly = isReadOnly || Bundle.main.isAppExtension
return self.init(directoryURL: directoryURL.appendingPathComponent("com.loopkit.LoopKit", isDirectory: true), isReadOnly: isReadOnly)
}
public class func controllerInLocalDirectory() -> PersistenceController {
guard let directoryURL = try? FileManager.default.url(for: .documentDirectory, in: .userDomainMask, appropriateFor: nil, create: true) else {
fatalError("Could not access the document directory of the current process")
}
let isReadOnly = Bundle.main.isAppExtension
return self.init(directoryURL: directoryURL.appendingPathComponent("com.loopkit.LoopKit"), isReadOnly: isReadOnly)
}
}