NSFetchedResultsController не обновляет обновление NSManagedObjects - PullRequest
1 голос
/ 28 февраля 2012

Когда я обновляю переходный атрибут (и я предполагаю другие атрибуты) в сущности с помощью следующего кода

[passedObject setValue:distanceNumber forKey:@"distance"];

NSFetchedResultsController удаляет объект из результатов выборки.

Я думаю, мне нужно сделать [fetchedresultscontroller performFetch:&error], чтобы сделать выборку снова, но ничего не происходит, объект не возвращается, чтобы получить результаты.

Чего мне не хватает?Как я могу обновить объекты во время выполнения без удаления из выборки NSFetchResultController?

Спасибо

Ответы [ 3 ]

1 голос
/ 29 февраля 2012

BillKast,

Переходные атрибуты являются специальными и не участвуют в запросах на выборку.Вы можете думать, что они всегда равны нулю на диске.

Я бы сделал более простой эксперимент, используя только выборочные запросы вместо извлеченного контроллера результатов.

Кроме того, раскройте версию вашего приложения и измените тип атрибута на постоянный.Я подозреваю, что вы увидите другое поведение.

Поскольку вы не перечисляете код, боюсь, у меня нет других предложений.Переходные атрибуты - ваша вероятная проблема.

Andrew

1 голос
/ 29 февраля 2012

Спасибо вам обоим за помощь!

Я думал, что для переходных атрибутов вам не нужно сохранять контекст. Неправильно. Это была проблема, мне просто нужно было сохранить контекст.

Большое спасибо еще раз.

1 голос
/ 28 февраля 2012

Каковы критерии получения?Вы используете предикат?Скорее всего, изменение, которое вы вносите в сущность, не соответствует предикату извлечения.Когда вы вносите свое изменение и затем сохраняете его, это приведет к тому, что текущий извлеченный контроллер результатов будет уведомлен контекстом управляемого объекта об изменении контекста.Контроллер полученных результатов затем проверяет все изменения и предпринимает соответствующие действия.Он удалит объекты, которые больше не соответствуют исходным критериям выборки.

Если вы покажете код для создания исходной выборки, возможно, кто-то может точно сказать вам, в чем проблема.

...