iPhone и SQLite: как обрабатывать соединение с базой данных несколькими классами? - PullRequest
0 голосов
/ 07 августа 2010

У меня есть некоторые сомнения по поводу SQLite ... Мое приложение использует только одну таблицу (инкапсулированную в класс логики данных) для хранения небольших данных, соединение открывается в didFinishLaunchingWithOptions и завершается в applicationWillTerminate (да, я знаючто в iOS4 applicationWillTerminate вызывается только iSO при необходимости, но я записываю в базу данных при каждом изменении данных).

Теперь мне нужно добавить вторую таблицу (и относительный класс), в которой будут храниться разные данные(без объединения двух таблиц) и нормального размера (около 1-2 строк в день).

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

Так что же лучше всего делать?Синглтон или два открытых соединения?Какое решение вы бы порекомендовали для моей ситуации?

Спасибо

Ответы [ 2 ]

2 голосов
/ 07 августа 2010

Singleton для меня при хранении в той же базе данных.

Небольшие объемы данных не должны быть узким местом производительности в ближайшее время.

Или, конечно, использовать CoreData.: -)

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

Для такого простого использования синглтон, вероятно, является правильным ответом по тем же причинам, о которых упоминает @Eiko.

Однако возникает вопрос: почему вы не используете Core Data?

Правильно использовать SQLite на самом деле довольно сложно, и я видел, как десятки очень талантливых / опытных инженеров совершенно не понимают этого. Хуже того, масштабировать существующую реализацию еще сложнее. Добавление параллелизма действительно действительно сложно с прямым SQLite (и инженеры Core Data потратили огромное количество энергии и приложили массу опыта для правильной поддержки параллелизма поверх SQLite).

Для такого простого использования Core Data не составит труда изучить, и у вас будет гораздо более прочная и универсальная кодовая база.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...