Насколько легко было бы адаптировать Core Data к моему приложению? - PullRequest
0 голосов
/ 12 августа 2010

Я новичок в разработке для iphone и только что завершил свое первое приложение для iphone.После подготовки своего iphone для разработки я заметил, что приложение использует слишком много памяти, и что из-за нескольких утечек памяти, возникающих из-за доступа к базе данных sqlite в приложении, приложение часто вылетает.Запустив инструменты, я решил, что CORE DATA звучит как лучший путь: конечно, мне все еще нужно использовать базу данных sqlite, которая у меня есть.

, поэтому мой вопрос таков: насколько легко было быадаптировать уже существующее приложение для работы с основными данными?Мое приложение в основном отображает 17 000 различных аннотаций mapView в небольших количествах по округам, хотя моя база данных очень проста, в основном только одна гигантская электронная таблица.

в делегате приложения мое приложение открывает базу данных Sqlite, помещает некоторые данныев объект местоположения с четырьмя атрибутами, а затем создает массив этих объектов.первый контроллер представления позволяет пользователю решить, какой округ (один из двенадцати или около того) пользователь хочет просмотреть, а затем последний контроллер представления использует цикл для добавления выбранных местоположений в mapView.

Как мне следуетизменить мое приложение в предыдущем абзаце, чтобы оно использовало CoreData?Можете ли вы указать мне какие-либо ресурсы, которые я могу использовать для достижения этой цели (желательно не учебник CoreData Центра разработчиков; слишком запутанный и более сложный, чем мне сейчас нужно)?или мне нужно сделать совершенно новый проект в xcode и начать с нуля?

Ответы [ 2 ]

1 голос
/ 13 августа 2010

Извиняюсь за непрямую понтификацию, но ...

Во-первых, я бы сказал, что ваше утверждение: «После запуска инструментов я решил, что ОСНОВНЫЕ ДАННЫЕ звучат как лучший способ пойти ...» ошибочны. Обнаружение ошибок и проблем с производительностью в вашем приложении автоматически не означает, что другой подход лучше, а может означать, что вам нужно только исправить утечки памяти и / или настроить подход в зависимости от того, что показывает ваше профилирование.

Тот факт, что вы по-прежнему должны использовать существующую базу данных SQLite, не исключает автоматического использования Core Data, но делает ваше конечное решение значительно более сложным. Если вам удастся избежать использования или Базовые данные или SQLite полностью, это, безусловно, будет вашим лучшим выбором.

Кроме того, Core Data не новичок (или, я бы сказал, даже промежуточный) технология какао. Это требует значительных предварительных знаний, чтобы делать что-то большее, чем самые простые вещи, не теряя безнадежной потери, когда возникает неизбежная проблема. Если вам не хватает времени, чтобы прочитать документацию и изучить технологию на данный момент, вам, вероятно, лучше просто устранить проблемы с помощью существующего решения.

... и нет ничего плохого в том, что ваше существующее решение (с использованием SQLite напрямую) в самом базовом виде. Лучший вопрос (и), который нужно задать, - это (или есть) конкретные проблемы, которые у вас возникают с вашим текущим подходом.

Тем не менее, если вы хотите адаптировать существующее решение на основе iOS *1018* для использования Core Data, вам, скорее всего, будет легче, чем если бы вы работали с Mac OS. Создайте базовый проект приложения для iPhone на основе Core-Data и посмотрите на код. Код для построения стека основных данных находится на виду. Единственное, что нужно запомнить, это добавить файл xcdatamodel, подобный тому, который был найден в пустом проекте. Если вы уже достаточно далеко, чтобы взаимодействовать с библиотекой SQLite, у вас должно быть достаточно опыта, чтобы ясно увидеть, как Core Data используется в стандартном приложении iOS.

0 голосов
/ 13 августа 2010

Шаги, необходимые для преобразования в Базовые данные: - Разработать модель данных (возможно, графически в xcode) - Примите ваш код, чтобы использовать вместо него основные данные, то есть переписать этот модуль - Прочитайте ваши старые данные и поместите их в основные данные

Если он уже запущен с sqllite, я бы остановился на нем. Если он использует слишком много памяти, это, вероятно, ошибка с вашей стороны или неправильное разбиение данных, которые вы загружаете в память, и вы хотите решить эту проблему тем или иным способом - хотя Core Data делает его, возможно, немного легче получить это правильно.

...