У меня есть две сущности Mobile и User, в которых Mobile имеет атрибут name, а user также имеет атрибут name. Пользователь может иметь несколько мобильных телефонов, но мобильный может иметь только один пользователь. Сценарий заключается в том, что когда бы я ни вводил имя для пользователя, которое уже присутствует в сущности «Пользователь», он должен обновлять этот набор user.mobile, а не дублировать нового пользователя.
Это мои функции сохранения и выборки
func save () {
if context.hasChanges {
do {
try context.save()
print("saved succesfully")
} catch {
let nserror = error as NSError
fatalError("Unresolved error \(nserror), \(nserror.userInfo)")
}
}
}
func fetch<T: NSManagedObject>( _ objectType: T.Type) -> [T] {
let entityName = String(describing: objectType)
let fetchRequest = NSFetchRequest<NSFetchRequestResult>(entityName: entityName)
do {
let fetchedObjects = try context.fetch(fetchRequest) as? [T]
return fetchedObjects ?? [T]()
} catch {
print(error)
return [T]()
}
}
Вот как я добавляю
users = persistenceManager.fetch(User.self)
if users.count > 1 {
for val in users {
if val.name == "Umar" {
val.addToDevice(device)
device.user = val
persistenceManager.save()
}
else if val.name != nil {
user.name = "Umar"
user.addToDevice(device)
device.user = user
persistenceManager.save()
}
}