Возможно ли работать с моей моделью CoreData в сегодняшнем расширении в swift, как в исходном приложении? Если да, как я могу создать NSManagedObjectContext?
У меня действительно нет подсказки, помимо идентификатора группы, но, к сожалению, я не знаю, как получить контекст.
Раньше я создавал приложения с проверкой вначале, что я хочу использовать CoreData, а затем я получил управляемый объект ObjectContext через мой AppDelegate. Но как я могу сделать что-то подобное в расширении? Apple не предоставляет информацию об этом.
Я отредактировал эту строку в AppDelegate:
NSURL *storeURL = [[self applicationDocumentsDirectory] URLByAppendingPathComponent:@"HTWcampus.sqlite"];
к этому (после включения группы в обе цели):
NSURL *storeURL = [[NSFileManager defaultManager] containerURLForSecurityApplicationGroupIdentifier:@"group.BenchR.TodayExtensionSharingDefaults"];
storeURL = [storeURL URLByAppendingPathComponent:@"HTWcampus.sqlite"];
NSLog(@"StoreURL2: %@", storeURL);
С тем, что существующая база данных в моем приложении исчезла (что здорово, потому что я думаю, что она работала, чтобы поместить базу данных в общий сегмент).
Но как я могу создать экземпляр моего контекста в расширении? И как я могу получить доступ к моим подклассам NSManagedObject?
В расширении у меня есть этот код:
var context: NSManagedObjectContext!
override func viewDidLoad() {
super.viewDidLoad()
var storeURL = NSFileManager.defaultManager().containerURLForSecurityApplicationGroupIdentifier("group.BenchR.TodayExtensionSharingDefaults")
storeURL = storeURL?.URLByAppendingPathComponent("HTWcampus.sqlite")
let modelURL = NSBundle.mainBundle().URLForResource("HTWcampus", withExtension: "momd")
let model = NSManagedObjectModel(contentsOfURL: modelURL)
let coordinator = NSPersistentStoreCoordinator(managedObjectModel: model)
coordinator.addPersistentStoreWithType(NSSQLiteStoreType, configuration: nil, URL: storeURL, options: nil, error: nil)
context = NSManagedObjectContext()
context.persistentStoreCoordinator = coordinator
}
Правильно ли это? И если да, то как я могу получить свой NSManagedObject-Subclasses? И мне нужно добавить файл momd в цель расширения? Если да, как я могу это сделать?