DBAccess创build自定义DBAccessSettings

我正在testingDBAccess以查看是否可以在项目中使用它。 我有更改sqlite文件的位置有问题,我希望它在caching目录中。 下面是我在AppDelegate.m中写到的代码的一部分:

- (DBAccessSettings*)getCustomSettings { DBAccessSettings *settings = [[DBAccessSettings alloc] init]; NSURL *applicationCachesDirectory = [[[NSFileManager defaultManager] URLsForDirectory:NSCachesDirectory inDomains:NSUserDomainMask] lastObject]; settings.databaseLocation = [applicationCachesDirectory absoluteString]; settings.defaultDatabaseName = @"myDefaultDB"; return settings; } - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { [DBAccess setDelegate:self]; [DBAccess openDatabaseNamed:@"NSURLProtocolExample"]; [NSURLProtocol registerClass:[MyURLProtocol class]]; return YES; } 

但有了上面的代码,我得到以下错误信息:

错误>>无法打开数据库文件

你能在这里说点什么吗?

我不熟悉DBAccess,但您有这些行:

 NSURL *applicationCachesDirectory = [[[NSFileManager defaultManager] URLsForDirectory:NSCachesDirectory inDomains:NSUserDomainMask] lastObject]; settings.databaseLocation = [applicationCachesDirectory absoluteString]; 

这将检索一个URLstring(以file://开头),而不是文件path。 如果你想要该文件夹的path,你想使用path

 settings.databaseLocation = [applicationCachesDirectory path]; 

坦率地说, 这个文档对于是期待一个URLstring还是一个path是不明确的,但是我认为它会期待后者。