Я использую базовый объект NSManagedObject (в приложении iOS) с атрибутом типа «transformable» для хранения фрагмента данных. Данные кодируются/декодируются с использованием встроенного преобразователя значений NSKeyedUnarchiveFromData. Проблема в том, что у меня возникли проблемы с правильной настройкой NSManagedObject после изменения двоичных данных. Скажем, к примеру, код выглядит следующим образом:Основные данные, не обновляющие преобразуемый атрибут
id temp = [myManagedObject myTransformableAttribute];
//.. do something with temp
[myManagedObject setMyTransformableAttribute:temp];
NSError *error;
if(![[myManagedObject managedObjectContext] save:&error]) {
//present error
}
Мне кажется, что «перезагрузка» преобразующееся атрибут на управляемом объект, а затем сохранить управляемый объект, должна привести к тому, чтобы данные были повторно закодированный с помощью трансформатора значения NSKeyedUnarchiveFromData. Но кодер никогда не вызывается, и обновленные данные не сохраняются.
Если вместо повторной установки исходных данных на управляемый объект я создаю копию измененных данных и устанавливаю , что на управляемый объект, то изменения распознаются. Возможно ли, что основные данные используют кешированную версию данных? Или что-то еще я здесь делаю неправильно? Спасибо ...