我不知道为什么找不到db.sqlite。我将其添加到项目的资源目录中。在那里。
这是一些我如何检查现有代码。
-(void)getDatabaseLocation
{
NSArray *dirPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *docsDir = [dirPaths objectAtIndex:0];
// Build the path to the database file
NSString *databasePath = [[NSString alloc] initWithString: [docsDir stringByAppendingPathComponent: @"db.sqlite"]];
NSFileManager *filemgr = [NSFileManager defaultManager];
if ([filemgr fileExistsAtPath: databasePath ] == NO)
{
NSLog(@"NO"); // It's say no when this method is called.
}
else
{ NSLog(@"YES");
}
}
//编辑
现在,我检查docsDir中的路径不存在。
最佳答案
当然不存在。您必须首先将资源复制到documents目录,如下所示:
if (![filemgr fileExistsAtPath:databasePath])
{
[filemgr copyItemAtPath:[NSBundle.mainBundle pathForResource:@"db" ofType:@"sqlite"] toPath:databasePath error:nil];
}
编辑:如果您只需要在数据库上进行查找(无需编辑),则只需执行以下操作:
databasePath = [NSBundle.mainBundle pathForResource:@"db" ofType:@"sqlite"];