Sqlite база данных не может быть найдена при запуске в устройстве - PullRequest
1 голос
/ 13 сентября 2011

В моем приложении я использую базу данных sqlite. Когда я запускаю его в iphone simulater, он работает нормально. Но он не может соединить базу данных с устройством. Путь к этой базе данных:

 /Users/taxsmart7/Library/Application Support/iPhone Simulator/4.3/Applications/A644750D- 5175-4FF1-BDA7-6EDF65895180/Documents/BillSplitter.sqlite

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

Ответы [ 2 ]

1 голос
/ 13 сентября 2011

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

NSString *pathname = [[NSBundle mainBundle] pathForResource:@"nameOfYourDatabase" ofType:@"sqlite3"]; // extension could not be .sqlite3!!! Have a look on your db file.
sqlite3 *database;
int res = sqlite3_open_v2([pathname UTF8String], &database, SQLITE_OPEN_READONLY, NULL);
if (res != SQLITE_OK) {
    NSLog(@"Error opening database %@", pathname);
    sqlite3_close(database);
}

Если вам нужно записать в базу данных при первом запуске приложения, вам нужно скопировать файл базы данных из комплекта приложения в каталог документов приложения, а затем открыть базу данных для чтения и записи.

1 голос
/ 13 сентября 2011

Это нормально, это путь к базе данных при запуске на симуляторе, говоря по-другому: на вашем Mac.Путь к вашему приложению и вся иерархия «файловой системы» при работе на устройстве совершенно иные.
Вы не должны использовать абсолютный путь в своем приложении и работать только из корневой папки приложения, что-то вроде:
/private/var/mobile/Applications/A644750D-5175-4FF1-BDA7-6EDF65895180/

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

HTH

EDIT : приведенная выше схема пути может быть неправильной, я подозреваю, что это просто путь к папке "Documents", зарезервированной для приложения.В любом случае, мой совет остается прежним: используйте относительные пути.

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