Какую структуру данных использовать / персистентность данных

У меня есть приложение, где мне нужна одна таблица информации со следующими полями:

поле 1 - интервал или символ
поле 2 - строка (макс. 10 символов)
поле 3 - строка (макс. 20 символов)
поле 4 - плавание

Мне нужна программа, чтобы отфильтровать на поле 1, основанном на сегментированном управлении и выбрать поле 2 из средства выбора. От этих данных я должен искать поле 4 для использования в вычислении. Общие записи будут приблизительно 200. Я никогда не вижу, что он выходит за предел 400 - 500. Я собираюсь использовать одиночный элемент, который я могу кодировать, я просто нуждаюсь в помощи со структурой для этой персистентности данных.

Какую структуру данных я должен использовать для этого? Я должен использовать NSNumber, NSString, и т.д. или старые типы данных как плавание, Символ, и т.д.? Я думал о структуре, помещенной в массив, но существует, вероятно, лучший путь. Это плохо мне знакомо так любая справка, или ссылка на примеры была бы большой. Я также думал о plist или словаре, но похоже, что это - просто поиск и поле, которое, очевидно, не будет работать. Базовые данные были похожи на излишество мне. Кроме того, какие-либо рекомендации относительно того, как я получаю исходные данные в него? Я хочу, чтобы пользователь смог отредактировать и добавить к базе данных.

6
задан Brian Tompsett - 汤莱恩 8 November 2015 в 22:45
поделиться

2 ответа

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

Кажется, у вас возникли проблемы с выяснением того, как эффективно индексировать эти записи. Я бы предложил хранить сами записи в списке или векторе . На самом деле, если вы думаете, что собираетесь много удалять, вероятно, лучше всего подойдет список . Таким образом, вы можете проиндексировать непосредственно элемент, который хотите удалить, а затем удалить в постоянное время. Затем вы можете создать индексы для элементов в списке или векторе , используя пару различных структур данных. Вы можете использовать карту или массив для непосредственного сопоставления на основе поля целочисленного индекса 1.

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

Не забывайте хранить только ссылки на структуры, которые вы создаете ... чтобы вы не дублировали записи повсюду.

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

0
ответ дан 17 December 2019 в 22:11
поделиться

Core Data на самом деле не является «излишним» - это именно то, для чего они предназначены. Возможно, вы привыкли к тому, что «базы данных» являются дорогими и тяжелыми, но Core Data построен на sqlite, который очень крошечный и быстрый. Поверьте, для вашего дела это не будет проблемой.

1
ответ дан 17 December 2019 в 22:11
поделиться
Другие вопросы по тегам:

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