Я пытаюсь добавить данные в Core Data в моем приложении. Когда я сохраняю его, не проверяя, существует ли он, он работает нормально. Но я не делаю то, что дублирует мои основные данные, поэтому, что я делаю, я выбираю все сущности с именем сущности, которые я пытаюсь добавить сначала, а затем проверяю, равно ли это 0, я добавляю, иначе нет. Но я продолжаю получать ошибку при попытке сохранить. Если кто-нибудь может помочь мне с этой проблемой.
Это моя функция проверки:
func entityExists(name: String) -> Bool {
let fetchRequest = NSFetchRequest<NSFetchRequestResult>(entityName: "name")
fetchRequest.includesSubentities = false
var entitiesCount = 0
do {
entitiesCount = try coreDataController.mainContext.count(for: fetchRequest)
}
catch {
print("error executing fetch request: \(error)")
}
if entitiesCount == 0{
return true
} else {
return false
}
}
Это мой код при сохранении данных.
if entityExists(name: (scrimmagePassedOver?.name)!) == true{
coreDataController.saveContext()
NotificationCenter.default.post(name: NSNotification.Name(rawValue: "load"), object: nil)
let alert = UIAlertController(title: "Saved!", message: "You have saved your Scrimmage.", preferredStyle: UIAlertControllerStyle.alert)
// add an action (button)
alert.addAction(UIAlertAction(title: "OK", style: UIAlertActionStyle.default, handler: nil))
self.present(alert, animated: true, completion: nil)
} else {
let alert = UIAlertController(title: "hey", message: "You have saved this Scrimmage before.", preferredStyle: UIAlertControllerStyle.alert)
alert.addAction(UIAlertAction(title: "OK", style: UIAlertActionStyle.default, handler: nil))
self.present(alert, animated: true, completion: nil)
}