Я создаю базу данных и помещаю файл * .sqlite в папку recources в Xcode. Перед открытием базы данных я копирую ее в папку документов из ресурсов.
Это прекрасно работает на симуляторе, но не работает на iPhone.
По некоторым причинам файл базы данных не существует на устройстве iPhone. Это мой код:
NSArray *documentPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDir = [documentPaths objectAtIndex:0];
NSString *databasePath = [documentsDir stringByAppendingPathComponent:databaseFileName];
NSFileManager *fileManager = [NSFileManager defaultManager];
BOOL success = [fileManager fileExistsAtPath:databasePath];
if(!success) // all the time it's YES, even if I delete database
{
// copy database from application folder
NSString *databasePathFromApp = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:databaseFileName];
BOOL fileExists = [fileManager fileExistsAtPath:databasePathFromApp];
if (fileExists) { // It's NO, for some reasons database does not exist
[fileManager removeItemAtPath:databasePath error:nil];
[fileManager copyItemAtPath:databasePathFromApp toPath:databasePath error:nil];
}
[fileManager release];
}
return databasePath;
По некоторым причинам эта строка постоянно возвращает NO
BOOL fileExists = [fileManager fileExistsAtPath:databasePathFromApp];
путь в databasePathFromApp примерно такой
/ вар / александр / ххх-ххх-ххх-ххх .... / AppName.app/database.sqlite
Вопрос: почему база данных не существует в ресурсах?