Используете ли вы файлы или базу данных sqlite с использованием основных данных в моем проекте iOS?
Я занимаюсь разработкой приложения для iPhone для веб-приложения, работающего в данный момент в Интернете. Текущее веб-приложение использует текстовые файлы для хранения данных. Текущая система использует свой собственный стандарт для хранения данных в файлах, а также сделал собственный алгоритм для чтения и записи данных в нем. Каждый текстовый файл имеет размер менее 1 МБ. Происходит много манипуляций с данными.
Так что при реализации того же, что я хочу выбрать для приложения iPhone? На веб-сайте Apple они сказали, что "SQLite идеально подходит для низкоуровневой работы с реляционными базами данных" https://developer.apple.com/technologies/ios/data-management.html Но в моем случае это высокий уровень.
Поэтому, пожалуйста, помогите мне принять решение. Хочу ли я управлять данными в файлах или базе данных sqlite, используя основные данные? Каковы prons и conc каждого? Есть ли проблемы с памятью или производительность при использовании файлов?
Изменить 09/02/2013
Спасибо за ваш ответ 'user76859403'. Текущее веб-приложение также использует базу данных для сохранения важной информации, такой как сведения об участнике, учетные данные для входа и т. Д., А также другие материалы сохраняются в файлах. В существующей системе есть различные разделы, и у всех этих разделов есть несколько подразделов и соответствующей информации. Такие разделы и их детали сохраняются в файлах. Созданный пользовательский алгоритм просто читает эти файлы и помещает все данные в кэш в виде записей (так же, как в базовых данных управляемых объектов контекста), и при каждом изменении данных весь файл перезаписывается. Я также хотел бы знать, возможно ли импортировать те классы и алгоритмы, которые используются в веб-сервере, в iOS, чтобы я мог сэкономить время, переписывая тот же алгоритм для iOS? Текущие серверные коды в C#
2 ответа
Во-первых, я должен сказать, что мне странно, что веб-сервер хранит свои данные в текстовых файлах и имеет настраиваемые алгоритмы для манипулирования данными. Учитывая, что происходит много манипуляций с данными, это кажется мне крайне неэффективным; база данных будет лучше, на мой взгляд.
Однако с вашей стороны все зависит от данных, которые вы обрабатываете с сервера. Вы можете использовать следующее:
SqlLite или CoreData - использование этих подходов - единственный путь. Но у вас может быть дополнительная работа по сортировке данных в таблицы и т.д.. обычные вещи базы данных. Обратитесь к ответу по этой ссылке, чтобы лучше понять разницу между SqlLite и CoreData или Google.
Просто сохраните данные в файлах так же, как это делается на сервере. Есть несколько способов сделать это, включая файлы со списком свойств и т. Д. Вот один из методов, где это делается с использованием NSCoding.
Я бы сказал, что подход № 1 имеет преимущество в организации и скорости (имеет преимущество, которое будет иметь любая реляционная база данных). Однако недостатком является то, что для правильной настройки потребуется больше времени.
Подход № 2 может сэкономить ваше время, так как вам не придется учитывать структуру данных или что-то еще, просто сбросьте и сохраните. Однако спросите себя, может ли размер данных сервера увеличиться? скорость является фактором в обработке? и т.д. Этот подход подходит вам, если данные будут относительно одинаковыми и нагрузка будет небольшой.
На мой взгляд, подход, который вы выбираете, во многом зависит от вашей загрузки данных и масштабов проекта (будь то быстрое исправление или долгосрочное улучшение существующей системы).
Я настоятельно рекомендую использовать Core Data, если вы имеете дело с чем-то "высокого уровня". Также проверьте mogenerator https://github.com/rentzsch/mogenerator. Этот замечательный учебник должен помочь вам начать: http://www.raywenderlich.com/934/core-data-on-ios-5-tutorial-getting-started
- Johannes