Безопасно ли динамическое связывание с библиотекой Sqlite на iPhone? - PullRequest
1 голос
/ 10 ноября 2009

Концерн гарантирует совместимость с файлом Sqlite Header, скомпилированным в приложение iPhone. Что если заголовочный файл, используемый во время компиляции, имеет более новую версию, чем динамическая библиотека, установленная на iPhone? Это может быть связано с тем, что приложение работает на более старой или новой версии iPhone OS, с которой оно было создано. Безопасно ли использовать динамическую библиотеку Sqlite на iPhone? Или мы всегда должны статически ссылаться. КСТАТИ: не хотел бы использовать Core Data.

Ответы [ 3 ]

0 голосов
/ 21 ноября 2009

Документы sqlite, похоже, рекомендуют проверить, совпадает ли версия файла заголовка с версией библиотеки по адресу: http://www.sqlite.org/c3ref/libversion.html. Беспокоит, потому что не похоже, что sqlite предоставляет контракт / гарантию того, что все будет работать версии. Помимо устаревания могут быть и другие типы несовместимости, касающиеся поведения или размера объекта, которые могут привести к сбоям. Насколько объединение, которое добавило бы дополнительные 680 К или около того к приложению. Довольно большой успех для мобильного приложения.

0 голосов
/ 07 января 2010

Прежде всего, среда iPhone жестко контролируется Apple, поэтому вам не нужно беспокоиться о множестве библиотек SQLite, установленных на устройствах.

Во-вторых, когда вы используете Xcode для ссылки на библиотеку, вы можете выбрать ссылку на sqlite, sqlite3, sqlite3.6 и т. Д. Таким образом, если вы используете функцию и не можете использовать что-либо ранее, чем 3.6, вы можете указать так в вашем приложении.

В-третьих, SQLite - это стабильный проект, и вы можете быть уверены, что авторы не внесут радикальные изменения в API без предупреждения. Если вы ссылаетесь на sqlite3, вы должны быть в безопасности, если только вы не делаете что-то действительно странное.

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

В заключение, да, это абсолютно безопасно и рекомендуется динамически связываться с библиотекой sqlite на iPhone, если вы не делаете что-то действительно странное.

0 голосов
/ 18 ноября 2009

SQLite очень внимательно относится к API-совместимости. Я думаю, что есть некоторые очень старые apis, которые помечены как устаревшие и не функциональные, но AFAIK их еще можно назвать. Тем не менее, почему бы просто не включить объединение?

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