【发布时间】:2016-08-07 03:26:28
【问题描述】:
我已经尝试过这段代码,但它在文档目录中创建了 BLANK database.sqlite 文件。
- (void)createEditableCopyOfDatabaseIfNeeded
{
// First, test for existence.
BOOL success;
NSFileManager *fileManager = [NSFileManager defaultManager];
NSError *error;
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSApplicationSupportDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *writableDBPath = [documentsDirectory stringByAppendingPathComponent:@"prediction.sqlite"];
success = [fileManager fileExistsAtPath:writableDBPath];
if (success) return;
// The writable database does not exist, so copy the default to the appropriate location.
NSString *defaultDBPath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"prediction.sqlite"];
success = [fileManager copyItemAtPath:defaultDBPath toPath:writableDBPath error:&error];
if (!success) {
NSAssert1(0, @"Failed to create writable database file with message '%@'.", [error localizedDescription]);
}
}
如何确保在复制数据库文件时不会创建空数据库?
任何帮助将不胜感激。
【问题讨论】:
-
该代码从不尝试创建数据库文件。
-
但是我只是将数据库文件从 NSbundle 复制到文档目录。
-
不,你根本没有这样做。
-
为什么?但无论如何我都想复制文件。
-
OK 那么哪个语句在复制文件?
标签: objective-c macos sqlite cocoa osx-yosemite