Вместо использования объекта hashable вы можете просто использовать набор. Возьмите значение атрибута, для которого вы хотите удалить дубликаты, и используйте это как тестовое значение. В моем примере я проверяю наличие повторяющихся значений ISBN.
do {
try fetchRequestController.performFetch()
print(fetchRequestController.fetchedObjects?.count)
var set = Set<String>()
for entry in fetchRequestController.fetchedObjects! {
if set.contains(entry.isbn!){
fetchRequestController.managedObjectContext.delete(entry)
}else {
set.insert(entry.isbn!)
}
}
try fetchRequestController.performFetch()
print(fetchRequestController.fetchedObjects?.count)
} catch {
fatalError()
}