У меня есть некоторые вычисленные значения в базе данных основных данных, которые мне нужно обновить непосредственно перед сохранением.В основном я нумерую некоторые объекты, чтобы облегчить навигацию между ними.
В настоящее время я наблюдаю NSManagedObjectContextWillSaveNotification
и пытаюсь сделать эту нумерацию там.Казалось бы, изменения, которые я делаю, сохраняются, но менеджер отмены все еще имеет некоторые изменения.Это заставляет документ выглядеть так, как будто в нем есть изменения (отметка на кнопке закрытия), даже если в контексте управляемого объекта сказано, что в нем нет (hasChanges
).Если я отменю один раз, документ выглядит так, как будто в нем нет изменений, но, в свою очередь, контекст управляемого объекта.
Менеджер отмены каким-либо образом сбрасывает себя в неправильном месте или я что-то делаю неправильно?
Обновление
Несколько запутанный код, в котором я делаю эту нумерацию, выглядит так:
- (void)managedObjectContextWillSave:(NSNotification *)notification
{
// Force the content view controller to save any pending changes.
[_contentViewController saveChanges];
NSArray *itemSortDesc = [self sortDescriptorsForSomeItem];
NSArray *items = [SomeItem findAllObjectsInContext:self.managedObjectContext
andSortBy:itemSortDesc];
NSUInteger i = 0;
for (SomeItem *i in items)
{
i.uid = [NSNumber numberWithUnsignedInteger:i++];
}
}
_contentViewController
содержит текстовое поле, котороебудет проанализирован для нескольких экземпляров SomeItem
.