【发布时间】:2014-02-25 17:44:11
【问题描述】:
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *databasePath = [documentsDirectory stringByAppendingPathComponent:@"idataBase.sqlite3"];
NSLog(@"%@",databasePath);
NSString *databasePathFromApp = [[NSBundle mainBundle] pathForResource:@"idataBase" ofType:@"sqlite3"];
NSLog(@"%@",databasePathFromApp);
bool databaseAlreadyExists = [[NSFileManager defaultManager] fileExistsAtPath:databasePath];
if (!databaseAlreadyExists){
[[NSFileManager defaultManager] copyItemAtPath:databasePathFromApp toPath:databasePath error:nil];
}
我试图将数据库复制到文档目录,但是当我尝试从主包获取数据库路径并且我的应用程序崩溃时它返回 null。该数据库存在于应用程序中。但是为什么它返回null呢?
【问题讨论】:
-
nil是什么?databasePath或databasePathFromApp? -
databasePathFromApp 为零。
-
那么应用的资源包实际上并不包含名为
idataBase.sqlite3的文件。确保文件的目标正确并且文件名具有准确的名称(包括大小写)。 -
我遇到了一些奇怪的问题,我通过再次添加数据库文件来解决上述问题。但现在我无法在数据库中插入数据。
-
NSBundle returns nil 的可能重复项
标签: ios sqlite resourcebundle