как использовать coredata для выборки списка мест, заказанных расстоянием

Действительно ли возможно, что ВСТАВКА допустима, но что отдельное ОБНОВЛЕНИЕ сделано впоследствии, который недопустим, но не запустил бы триггер?

12
задан 30 September 2009 в 20:35
поделиться

2 ответа

У меня аналогичная ситуация - и хотя вышесказанное верно в отношении невозможности чтобы использовать NSFetchedResultsController, вы все равно можете использовать основные данные для извлечения ваших данных.

Я также использовал sqlite3 раньше - и моя выборка была сделана как серия выборок с увеличивающимися размерами ограничивающей рамки - пока не будет достигнут размер, которого у меня достаточно ' полученные результаты. В моем случае я удваиваю широту и долготу для каждой итерации, что дает прибл. четырехкратное увеличение площади для каждой итерации.

Этот метод отлично работает и в Core Data, но, как также указано выше, вам необходимо скопировать объекты в новый массив и отсортировать их, используя свой собственный метод после завершения выборки .

2
ответ дан 2 December 2019 в 21:44
поделиться

Итак, вот проблема: когда вы выполняете NSFetchRequest , вы можете основывать предикат только на постоянных свойствах. Кажется чрезвычайно маловероятным, что у вас будет постоянное свойство, отслеживающее расстояние от текущего местоположения.

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

Если у вас много объектов, вы рискуете довольно быстро заполнить вашу память. И даже если вы этого не сделаете, вы все равно будете тратить время на получение объектов, которые никогда не собираетесь использовать.

Я предполагаю, что у вас, вероятно, был изящный оператор SQL SELECT , который вычислял текущее расстояние в вашей предыдущей версии. Вы не сможете повторить это с помощью Core Data.

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

Если у вас много объектов, вы рискуете довольно быстро заполнить вашу память. И даже если вы этого не сделаете, вы все равно будете тратить время на получение объектов, которые никогда не собираетесь использовать.

Я предполагаю, что у вас, вероятно, был изящный оператор SQL SELECT , который вычислял текущее расстояние в вашей предыдущей версии. Вы не сможете повторить это с помощью Core Data.

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

Если у вас много объектов, вы рискуете довольно быстро заполнить вашу память. И даже если вы этого не сделаете, вы все равно будете тратить время на выборку объектов, которые никогда не собираетесь использовать.

Я предполагаю, что у вас, вероятно, был изящный оператор SQL SELECT , который вычислял текущее расстояние в вашей предыдущей версии. Вы не сможете повторить это с помощью Core Data.

вы рискуете довольно быстро заполнить свою память. И даже если вы этого не сделаете, вы все равно будете тратить время на выборку объектов, которые никогда не собираетесь использовать.

Я предполагаю, что у вас, вероятно, был изящный оператор SQL SELECT , который вычислял текущее расстояние в вашей предыдущей версии. Вы не сможете повторить это с помощью Core Data.

вы рискуете довольно быстро заполнить свою память. И даже если вы этого не сделаете, вы все равно будете тратить время на выборку объектов, которые никогда не собираетесь использовать.

Я предполагаю, что у вас, вероятно, был изящный оператор SQL SELECT , который вычислял текущее расстояние в вашей предыдущей версии. Вы не сможете повторить это с помощью Core Data.

1
ответ дан 2 December 2019 в 21:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: