2010-10-07 3 views
3

Я пытаюсь открыть базу данных, которая у меня есть в моем проекте внутри ресурсов.FMDB открыть базу данных

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

Хотелось бы как открыть его!

Я использую этот код: db = [База данных FMDatabaseWithPath: @ "bbdd.sql"];

Я не знаю, как найти другую часть «фактического» пути.

У вас есть решение для меня?

Спасибо !!!!

ответ

8

Вам нужно найти полный путь к базе данных в вашем комплекте ресурсов, что-то вроде этого:

NSString *databasePath = [[NSBundle mainBundle] pathForResource:@"mySQLiteDatabaseFile" ofType:@"sqlite3"]; 

Там есть полный пример в этой теме Copying data to the Application Data folder on the iPhone

+0

Но у меня все еще есть проблема: он открывает этот длинный адрес, который открывает путь: /Пользователи/nameOfUser/Библиотека/Поддержка приложений/iPhone Simulator/3.2/Приложения/5399D73E-F31A-46B1-94B1-EAD3E2B96D6E/appName.app /bbdd.sql И путь, который мне нужен: /Users/nameOfUser/Folder1/Folder2/appName/bbdd.sql Мне нужно знать, как получить путь к папке, в которой проект должен открыть базу данных , – victorvj

+1

«Длинный адресный путь» - это то, что вы работаете в симуляторе. И похоже, что путь правильный для пакета, поставляемого sql-файлом. Если вы хотите отредактировать его, теперь вам нужно скопировать его в каталог Document Document (см. Ссылку в моем исходном комментарии). –

4

каталог Получить документ:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentDirectory = [paths objectAtIndex:0]; 
NSString *dbPath = [documentDirectory stringByAppendingPathComponent:@"Test.db"]; 

Следующая

DB = [FMDatabase databaseWithPath:dbPath]; 
+0

У меня также возникла проблема с пути к базе данных, не указав на каталог документа. Хорошая идея. – Redwarp