Каков наилучший способ обработки временных объектов в Базовых данных? Я видел решения, где создаются временные контексты, где они вставляются в нулевой контекст и т. Д.
Однако вот проблема, которую я вижу в обоих этих решениях. Я использую базовые данные для своей объектной модели и в некоторых моих представлениях храню NSSet базовых данных. Проблема, с которой я столкнулся, заключается в том, что при сохранении объекта изменяется идентификатор объекта, что фактически делает недействительным все, что хранится в любом наборе NSSet, поскольку теперь isEqual и hash различаются. Хотя я мог сделать недействительным объект, хранящийся в NSSet, он часто не практичен и, конечно, не всегда прост.
Вот что я рассмотрел:
1) переопределить метод isEqual и хэш для NSManagedObject (очевидно, плохо)
2) не помещайте NSManagedObject в NSSet (используйте NSDictionary, где ключ всегда фиксирован)
3) использовать совершенно другой тип для хранения в NSSet, где я мог бы правильно реализовать методы isEqual и хеш-кода
У кого-нибудь есть лучшее решение для этого?