Наилучшая практика для хранения данных iPhone Apps

голоса
2

У меня есть iPhone приложение, которое в значительной мере опирается на базу данных TableViews и SQLite. Где вы храните данные? В моем случае я вытягиваю данные из Интернета в App делегатом и сохранить его в AppDelegate и сохранить его в БД через регулярные промежутки времени.

RootViewController является TableView, который считывает объект AppDelegate и заполнит сам.

Но, по словам Эвана Doll (Стэнфорд лекции), кажется, что хранение данных в AppDelegate, казалось бы, плохой дизайн. Я не хочу, чтобы в конечном итоге платить за это позже. Может кто-нибудь предложить лучшую альтернативу к этому решению?

Задан 19/05/2009 в 14:37
источник пользователем
На других языках...                            


1 ответов

голоса
7

Для моего личного использования, я создал какое-то строительство MVC. У меня есть DataManager (одноэлементный), который содержит все необходимые данные (в основном представлены в моделях; простые NSObjects) в массиве или словарях.

Просмотры (СИБ файлы и ViewControllers) поговорить с DataManager, чтобы получить свои данные через функцию получается .. если данные уже присутствуют в DataManager, он возвращает данные (через Notification). Если не; он направляет вызов на контроллер, который затем получает его.

В этом контроллере, я отделите вызов в автономном / онлайн модус (вероятно, не важно для вас), где, если в Интернете, вызов является запрос XML, и если отсутствует вызов является в SQLite базы данных.

Контроллер может затем установить данные на DataManager и направить уведомление в View.

Затем цикл начинается снова, где View может получить доступ к данным через DataManager .. Все это происходит в асинхронных вызовах, поэтому Уведомления (если бы я позволить DataManager или контроллерам связывайтесь с соображениями, это не будет поточно ).

Мой AppDelegate делает только самым первую инициализацию главного вида, контроллеры и DataManager, а те затем взять на себя.

Это хорошо, чтобы ваши модели (данные) в одном месте, так что вы можете легко получить доступ к нему в течение каждого класса, не создавая зависимости гораздо класса.

Я распался большинство типов функциональных возможностей в отдельные классы также, как DataManager для данных, DownloadManager для асинхронизированных запросов URL, в XML Parser, завод строить модели из NSDictionaries, в DatabaseConnector, и т.д., и т.д.

Ответил 19/05/2009 в 15:13
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more