У меня есть приложение, где мне нужна одна таблица информации со следующими полями:
поле 1 - интервал или символ
поле 2 - строка (макс. 10 символов)
поле 3 - строка (макс. 20 символов)
поле 4 - плавание
Мне нужна программа, чтобы отфильтровать на поле 1, основанном на сегментированном управлении и выбрать поле 2 из средства выбора. От этих данных я должен искать поле 4 для использования в вычислении. Общие записи будут приблизительно 200. Я никогда не вижу, что он выходит за предел 400 - 500. Я собираюсь использовать одиночный элемент, который я могу кодировать, я просто нуждаюсь в помощи со структурой для этой персистентности данных.
Какую структуру данных я должен использовать для этого? Я должен использовать NSNumber, NSString, и т.д. или старые типы данных как плавание, Символ, и т.д.? Я думал о структуре, помещенной в массив, но существует, вероятно, лучший путь. Это плохо мне знакомо так любая справка, или ссылка на примеры была бы большой. Я также думал о plist или словаре, но похоже, что это - просто поиск и поле, которое, очевидно, не будет работать. Базовые данные были похожи на излишество мне. Кроме того, какие-либо рекомендации относительно того, как я получаю исходные данные в него? Я хочу, чтобы пользователь смог отредактировать и добавить к базе данных.
Я думаю, что структура подойдет для того, что вы хотите делать. Я предполагаю, что для любой конкретной записи поля 1-4 относятся к одной и той же записи. В этом случае вы можете использовать структуру для представления записи.
Кажется, у вас возникли проблемы с выяснением того, как эффективно индексировать эти записи. Я бы предложил хранить сами записи в списке
или векторе
. На самом деле, если вы думаете, что собираетесь много удалять, вероятно, лучше всего подойдет список
. Таким образом, вы можете проиндексировать непосредственно элемент, который хотите удалить, а затем удалить в постоянное время. Затем вы можете создать индексы для элементов в списке
или векторе
, используя пару различных структур данных. Вы можете использовать карту
или массив для непосредственного сопоставления на основе поля целочисленного индекса 1.
Затем вы можете использовать карту
или хэш-карту, которая отображается по полю 2 .. .. Это даст вам несколько различных способов индексирования записей.
Не забывайте хранить только ссылки на структуры, которые вы создаете ... чтобы вы не дублировали записи повсюду.
Создание синглтона-оболочки вокруг этих структур данных не должно быть слишком сложным. Самая сложная часть - убедиться, что вы удаляете / вставляете все правильно, кроме того, хотя это должно работать достаточно хорошо.
Core Data на самом деле не является «излишним» - это именно то, для чего они предназначены. Возможно, вы привыкли к тому, что «базы данных» являются дорогими и тяжелыми, но Core Data построен на sqlite, который очень крошечный и быстрый. Поверьте, для вашего дела это не будет проблемой.