I need to access persistent container in my main target as well as app extension. So I have created a framework to share code and I created a NSPersistentContainer subclass like this :
class PersistentContainer: NSPersistentContainer {
override class func defaultDirectoryURL() -> URL {
return FileManager.default.containerURL(forSecurityApplicationGroupIdentifier: "group.xxx.xxx.xxx")!
}
override init(name: String, managedObjectModel model: NSManagedObjectModel) {
super.init(name: name, managedObjectModel: model)
}
}
and in AppDelegate, I am doing this to load persistent store:
let storeDirectory = FileManager.default.containerURL(forSecurityApplicationGroupIdentifier: "group.com.s2m.freadom")!
let url = storeDirectory.appendingPathComponent("SirikitWIthCoreDataDemo.momd")
print(url)
let mom = NSManagedObjectModel.init(contentsOf: url)
let container = PersistentContainer.init(name: "SirikitWIthCoreDataDemo", managedObjectModel: mom!)
It crashes when I try to load NSManagedObjectModel. I don't understand what am I doing wrong here?