У меня есть концептуальный запрос SQL, который использует группу, на основные таблицы данных т следующим образом:ИОС таблица с данными, которые сгруппированы по
выберите A, B, сумму (с) c_sum от т группы а, б;
Использование основных данных Я могу выполнить запрос (как описано в потоке GROUP BY with SUM() using Core Data). Я хотел бы использовать NSFetchedResultsController. Я попытался следующие:
В моей работе «обновить», я пытался использовать выборки запроса, соответствующего указанной выше группы по запросу непосредственно, но столкнулся с проблемой «NSFetchedResultsController не поддерживает как отслеживание изменений и выборки запроса-х с NSDictionaryResultType ".
Тогда я подумал о следующем. Сохраните записи в таблице t. Затем запустите указанный выше запрос и сохраните результат в другой таблице t1. Свяжите nsfetchedresultscontroller с регулярной выборкой из t1. К сожалению, в этом случае я столкнулся с проблемой, что группа по запросу ничего не видит в db, поскольку операция сохранения документа асинхронна.
Чтобы устранить эту проблему, я попытался сохранить документ сразу после того, как ввел в таблицу t, но затем я получил сообщение об ошибке «Этот NSPersistentStoreCoordinator не имеет постоянных хранилищ. Он не может выполнять операцию сохранения».
Очевидной альтернативой для меня, чтобы сделать группу, и суммы программно, а затем вставить данные в t1, но я думал, что я хотел бы спросить здесь, чтобы увидеть, если у других есть какие-либо мысли. Второй, который я еще не пробовал, - это прослушать уведомление о сохранении документа, а затем вставить в t1. Другой альтернативой является не использование nsfetchedresultscontroller - чего я бы хотел избежать.
Мысли?
Спасибо!
UPDATE: OK обнаруживая сохранить уведомление, а затем населяющих t1 от т с использованием сгруппированных по делам запросов, но не является хорошим решением, потому что: 1. Я милость, когда операция сохранения происходит 2. Каждый время сохраняется, таблица заселена, что явно не является хорошей идеей.