Сбой приложения при попытке создания базы данных
Я создал базу данных sql, используя «Браузер баз данных SQLite», перетащил ее в свой проект Xcode и собрал приложение. Он отлично работает на симуляторе, но вылетает на iPhone с этой ошибкой:
<code>*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Failed to create writable database file with message 'The operation could‚ not be completed. (Cocoa error 260.)'.' </code>
Вот мой код:
<code>- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Creates a writable copy of the bundled default database in the application Documents directory: NSLog(@"AppDelegate...Looking for embedded Database file..."); BOOL success; NSFileManager *fileManager = [NSFileManager defaultManager]; NSError *error; // Grab the path to the Documents folder: NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *documentsDirectory = [paths objectAtIndex:0]; NSString *writableDBPath = [documentsDirectory stringByAppendingPathComponent:@"users.sql"]; success = [fileManager fileExistsAtPath:writableDBPath]; if (success) { NSLog(@"Database File Exists in Documents folder!"); NSLog(@"Its path is: %@", writableDBPath); return YES; } else { // But if the writable database does not exist, copy the default to the appropriate location. NSLog(@"!!NO Database File Exists in Documents folder!"); NSString *defaultDBPath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"users.sql"]; success = [fileManager copyItemAtPath:defaultDBPath toPath:writableDBPath error:&error]; if (!success) { NSAssert1(0, @"Failed to create writable database file with message '%@'.", [error localizedDescription]); } else NSLog(@"WROTE THE DATABASE FILE!!!"); } return YES; } </code>
Снова, это работает на Симуляторе, но не на iPhone. (Это не может иметь никакого отношения к файлу с расширением «.sql», а не к расширению «.sqlite», не так ли? Потому что это расширения, которые «Браузер баз данных SQLite» дает создаваемым им файлам). .)