sqlite работает на симуляторе, но не на устройстве - PullRequest
0 голосов
/ 23 июля 2010

У меня вопрос, я не могу заставить мою базу данных sqlite работать / открываться на устройстве ipad.Все отлично работает на симуляторе, но не на реальном устройстве.Я помещаю MODE в NO, когда я хочу проверить устройство, но оно не загружается.

    sqlite3 *database;
if (MODE) { //Simulator
    result = sqlite3_open("/Users/userID/Myapp/VRdb.sqlite", &database);
} else { // On device
    result = sqlite3_open([databasePath UTF8String], &database);
}

if(result != SQLITE_OK)
{
    sqlite3_close(database);
    view = [[UIAlertView alloc]
            initWithTitle: @"Database Error"
            message: @"Failed to open database."
            delegate: self
            cancelButtonTitle: @"OK" otherButtonTitles: nil];
    [view show];
    [view autorelease];

}

databasePath получается:

databasePath = [[NSBundle mainBundle] pathForResource: @ "VRdb "ofType: @" sqlite "];

Есть что-то, что я пропустил ?????

1 Ответ

4 голосов
/ 23 июля 2010

Есть ли файл по этому пути? Хотя функция sqlite3_open () создаст файл, если он не существует, вы не можете создавать файлы внутри пакета приложения (разрешения). Файл фактически должен уже существовать и быть скопирован в комплект как ресурс во время сборки, а затем использоваться в качестве шаблона для копирования в область для записи, например, в папку документов.

(спасибо Питеру за подсказку, что я понял, что мой ответ был неполным :-))

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