Хорошо, теперь я закончил разработку на эмуляторе и когда я установил на моем тестовом устройстве, я получил ошибкуsqlite3 на iPhone эмулятор против разрешения устройства?
попытку написать только для чтения базы данных
Какие настройки для управления БД доступ? С этим будет сложно справиться при развертывании?
Дополнительная информация ... Я думаю, что знаю, что происходит ... Когда я ищу свою БД, это не тот же путь, что и учебники. Мне нравится делать группу, которая находится ниже корневой папки проекта для «Контента». Я добавил файл JustADatabase.sqlite в этой группе под моим определенным путем. Поскольку не все пути доступны для записи, я предполагаю, что мой путь, созданный пользователем, не был доступен для записи при установке.
Я считаю, что есть способ использовать скрипт build/copy для установки файла в нужном месте.
Считаете ли вы, что это проблема? Вы знаете, как выполнить сценарий исправления или как поместить файл в нужное место в моем проекте, чтобы он был скопирован правильно? Ниже приведен код, ведущий к команде sqlite-open с пропущенными «учебными» путями. Это работает для чтения и может быть причиной отказа в доступе к записи.
- (void)initializeDatabase {
// ??? NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
// ??? NSString *documentsDirectory = [paths objectAtIndex:0];
// ??? NSString *pathTutorial = [documentsDirectory stringByAppendingPathComponent: @"JustaDatabase.sqlite"];
NSString *path = [[NSBundle mainBundle] pathForResource:@"JustaDatabase" ofType:@"sqlite"];
if(sqlite3_open([path UTF8String], &database) == SQLITE_OK) {
NSLog(@"%s: opened database %@", __FUNCTION__, path);
} else {
NSAssert1(0,@"Failed to open database: '%s'.", sqlite3_errmsg(database));
}
}