Я не уверен, что у меня есть окончательный ответ, но сам немного разбираясь в этом, я видел множество людей, которые говорят, что можно оставить базу данных открытой.
Кроме того, если вы посмотритена сайте Sqlite вы увидите, что они проделали большую работу, чтобы гарантировать, что база данных не будет повреждена в результате сбоев, сбоев питания и т. д.
http://www.sqlite.org/testing.html
http://www.sqlite.org/atomiccommit.html
Мой опыт использования Sqlite и FMDB таков, что было бы неплохо открыть соединение и просто оставить его открытым.Помните, что это «соединение» с файлом, который находится в локальной файловой системе во флэш-памяти.Это совсем другая ситуация, чем соединение по сети.Я думаю, что вероятность сбоя чрезвычайно мала, поскольку он явно предназначен для обработки сбоев, сбоев питания и т. Д., Даже если они происходят во время реальной операции базы данных - поэтому вне операции базы данных они не являются проблемой.
Можно, конечно, утверждать, что держать соединение с базой данных, когда оно не используется, - это плохая практика, и я бы не советовал это делать в типичной конфигурации клиент-сервер, но на iPhone / iPad я думаю, что это не проблема.Держать его открытым, кажется, работает нормально, и это не та вещь, о которой стоит беспокоиться.