Да, я согласен с Иоахимом.иногда возникает проблема с подключением БД.что я делаю, это пара вещей.Сначала я добавляю следующий код в мой делегат приложения приложения.
- (void) copyDatabaseIfNeeded {
//Using NSFileManager we can perform many file system operations.
NSFileManager *fileManager = [NSFileManager defaultManager];
NSError *error;
NSString *dbPath = [self getDBPath];
BOOL success = [fileManager fileExistsAtPath:dbPath];
if(success) {
NSString *defaultDBPath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"MyDB.sqlite"];
success = [fileManager copyItemAtPath:defaultDBPath toPath:dbPath error:&error];
if (!success)
NSAssert1(0, @"Failed to create writable database file with message '%@'.", [error localizedDescription]);
}
}
Вызовите эту функцию в ApplicationDidFinishLaunching.
Теперь удалите базу данных, которая сейчас находится в вашем комплекте.(УБЕДИТЕСЬ, ЧТО У ВАС ЕСТЬ РЕЗЕРВНОЕ КОПИРОВАНИЕ)И (если возможно, удалить весь проект из папки Iphone Simulator) Потому что иногда предыдущая база данных прилагается.Очистите ваш проект, добавьте базу данных в ваш пакет.Скомпилируйте это ..
Дайте мне знать, если это сработало
Функция Get Path
- (NSString *) getDBPath {
//Search for standard documents using NSSearchPathForDirectoriesInDomains
//First Param = Searching the documents directory
//Second Param = Searching the Users directory and not the System
//Expand any tildes and identify home directories.
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory , NSUserDomainMask, YES);
NSString *documentsDir = [paths objectAtIndex:0];
return [documentsDir stringByAppendingPathComponent:@"MYDB.sqlite"];
}