Я разрабатываю расширение приложения и общего доступа и пытаюсь использовать основные данные. Но когда я вставляю элементы в расширение, эти элементы видны только в расширении, но не из приложения-контейнера (например, я выполняю NSFetchRequest из приложения и получая нулевые элементы, но в приложении i получил> 0). Я использую следующий код для получения сохраняющегося контейнера:Доступные данные ядра как из контейнерного приложения, так и для расширения
lazy var persistentContainer: NSPersistentContainer = {
let container = NSPersistentContainer(name: "appname")
container.loadPersistentStores(completionHandler: { (storeDescription, error) in
if let error = error {
fatalError("Unresolved error \(error)")
}
})
return container
}()
Кроме того, судно целевого элемента для appname.xcdatamodeld проверяется как для приложения и расширения. Как правильно распределить основные данные как для контейнерного приложения, так и для расширения?
По существу, что изменилось для Swift 3 является то, что вам нужно, чтобы указать на SecurityGroup в качестве вашего магазина URL, так что они оба существа сохраненный для этого. (Предположим, что вы уже правильно настроили группу приложений в части возможностей проекта) –
Я сохранил постоянное хранилище (файл sqlite) в общем каталоге групп приложений, как указано выше. Однако я не могу понять, как получить доступ к постоянному хранилищу из расширения приложения. Весь код, который я нашел, использует делегат приложения (недоступный в расширении) из основного приложения, чтобы получить ManagedObjectContext. Может ли кто-нибудь сказать мне, как это сделать? –