У меня есть уведомление с NotificationCenter.default
, которое запускает метод удаления, который вылетает при попытке извлечь из моего магазина.Это метод:
@objc fileprivate func pruneBooks() {
DispatchQueue.global(qos: .background).async {
let context = cdStack.getManagedObjectContext()
context.perform {
do{
let request = NSFetchRequest<Book>(entityName: "Book")
let result = try context.fetch(request)\\ <----- CRASHES HERE
//DO STUFF
}catch{
// Handle Error
}
}
}
}
Вот как выглядит мой getManagedObjectContext
метод:
func getManagedObjectContext() -> NSManagedObjectContext {
let thread = Thread.current
if thread.isMainThread {
return mainMOC
}
let childContext = NSManagedObjectContext(concurrencyType: .privateQueueConcurrencyType)
childContext.parent = mainMOC
NotificationCenter.default.addObserver(self,
selector: #selector(didReceiveChildContextDidSave(notification:)),
name: .NSManagedObjectContextDidSave,
object: childContext)
return childContext
}
Я не нашел способа дублировать этот сбой, я просто получаю егов отчетах о сбоях Apple.Вот обратный след:
Книга вызывающе и единообразно и называется Книгой, поэтому я знаю, что это не проблема.Кроме того, меня смущает вопрос, почему он не собирается работать, а не падает.
Примечание: приложение для iOS 9 и выше, поэтому я не использую NSPersistentContainer
.