ФОН
У нас есть приложение для iPhone, которое использует sqlite
для большой базы данных.Мы используем FTS3
, полнотекстовый поиск, поэтому мы должны «свернуть наш» sqlite вместо использования библиотеки, включенной в iOS SDK.Мы используем объединенный файл sqlite.c и используем FMDB
в качестве оболочки Obj-C.
ПРОБЛЕМА
Мой проект компилируется, но он падает наисключение, которое я установил, чтобы определить, не работает ли база данных (подробнее об этом чуть позже).Мой партнер, однако, весело кодирует, без проблем - на ТОЧНО ЖЕ коммит ревизии как я.Вот что странно.
В частности, приложение выполняет следующую загрузку при первой загрузке:
- Скопируйте базу данных в каталог документов пользователя, чтобы она была доступна для записи.(работает нормально)
- Откройте базу данных с помощью FMDB
databaseWithPath:
, затем open
. - Вызов
goodConnection
на FMDB в этот момент возвращает YES
- база данных действительно открыта иработает. - Вызов
SELECT * FROM sqlite_master WHERE type = 'table'
не возвращает записей.(должно быть много таблиц)
ЧТО Я ПРОБОВАЛ
Теперь, если вы попросите sqlite «открыть» базу данных, которая не существует- он просто создаст один.Вот как выглядит это поведение.Итак, я открыл окно терминала, перешел в каталог документов своего приложения на симуляторе и набрал:
Makbook:Documents makdad$ sqlite3 myDB.db
, который запускает sqlite3, и, конечно, все выглядит хорошо.Все мои данные там.
Я шаг за шагом прошел через открытый метод FMDB, чтобы убедиться, что я открывал нужную базу данных.Похоже, что я, конечно,.
Первое, что я попробовал, было понижение до Xcode 3.2.6.Та же проблема, так что я думаю, что я исключил разницу в Xcode 3/4 при компиляции (хотя сначала я подозревал, что это так).
У кого-нибудь есть попытка отладки или знание того, чтомоя проблема может быть?