2012-06-16 3 views
2

У меня есть файл базы данных SQLite, встроенный в мой проект. На симуляторе запрос к базе данных работает нормально, но не на устройстве. Мой путь к файлу базы данных, когда я бегу на устройстве это (как показано на консоли с NSLog):SQLite файл не найден, когда я запускаю на устройстве

путь для файла базы данных: /var/mobile/Applications/5914F328-148F-52E6-1AC9-38D7FF141F9B/MyApplication.app/db.sqlite

Мой соответствующий код, который ищет БД:

NSFileManager *fileMgr=[NSFileManager defaultManager]; 
    NSString *dbPath=[[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"db.sqlite"]; 
    NSLog(@"The path for the database file is : %@",dbPath);//Display the whole path 

Я знаю, что путь на тренажере и на устройстве совершенно другой. Итак, как мне изменить свой код выше, чтобы найти файл базы данных относительно?

+0

Надеюсь, что это поможет: [Как получить SQLite файл базы данных, когда приложение работает на устройстве] [1] [1]: http://stackoverflow.com/questions/6620691/how-to-get-sqlite-database-file-when-application-is-running-on-device – webmastx

+0

Нет, относительное сопоставление пути файла автоматически выполняется iOS. Нет необходимости изменять свой код для изменений устройства. Он будет работать нормально для всех устройств (включая симулятор). – Ananth

+0

Хорошо, но почему он не распознает файл базы данных, когда я запускаю на устройстве, значит ли это, что у моего кода что-то не хватает? – Luca

ответ

3

Я решил свою проблему, для которой эта проблема связана с одной и той же проблемой, мне нужно просто включить мой SQLite-файл db.sqlite в мои ресурсы Bundle. Направьте свой project target-->Build Phases--->Copy Bundle Resources, а затем нажмите кнопку + и добавьте файл SQLite или просто перетащите свой файл SQLite из группы проектов и файлов и отпустите его. Надеюсь, что это поможет :)

Смежные вопросы