Лучшие практики для временных объектов в RestKit с Core Data

Предыстория: у меня есть управляемый объект, автомобиль. У меня есть API поиска RESTful на localhost / cars / search. Возвращенные результаты являются объектами Car со стороны сервера, но я хочу сохранить только тот, который выбирает пользователь. Остальные автомобили, которые я хочу выбросить, когда они возвращаются из поиска.

Сначала я был похож на:

@interface Car : NSManagedObject  //<--- managed object

    @property (nonatomic, strong) NSNumber* year;
    @property (nonatomic, strong) NSString* make;
    @property (nonatomic, strong) NSString* model;

@end

@interface TransientCar : NSObject //<--- regular NSObject!

    @property (nonatomic, strong) NSNumber* year;
    @property (nonatomic, strong) NSString* make;
    @property (nonatomic, strong) NSString* model;

@end

Я отображал результаты поиска RSON API JSON в объекты TransientCar с целью отображения результатов поиска, но не сохранения их в контексте. По умолчанию, если вы сопоставляете управляемый объект, RestKit вызовет фабрику удобства + объекта для создания объекта и вставки его в текущий контекст (жестко запрограммированный в контекст хранилища объектов sharedManager, кстати!)

Это казалось неустойчивым. Так что теперь я просто использую NSMutableDictionary для хранения данных результатов поиска, пока пользователь не коснется подробного представления и не сделает что-то стоящее для сохранения реального управляемого объекта:

RKObjectMapping* tempCarMapping = [RKObjectMapping mappingForClass:[NSMutableDictionary class]];
[tempCarMapping mapKeyPathsToAttributes:
 @"year", @"year",
 @"make", @"make",
 @"model", @"model",
 nil];

Это хорошая практика? Используя NSMutableDictionary как временное представление, пока пользователь не сделает что-то, что оправдывает вставку нового объекта в контекст? Я был фанатом использования исходного подкласса управляемых объектов для представления данных, но каким-то образом смог пометить его как «не хранить» или что-то в этом роде, но каждый раз, когда я делаю это, я чувствую, что борюсь с фреймворком (и условия гонки). Я также попытался использовать контекст с нулями / выбрасыванием, создав новый RKObjectManager и просто очистив весь его контекст после этого, но метод + managedObjectContext категории RestRit ActiveRecord жестко задан для возврата:

[[[RKObjectManager sharedManager] objectStore] managedObjectContext];

Такой тип исключает возможность использования пустого контекста для временных / мусорных данных.

Ответы на вопрос(3)

Ваш ответ на вопрос