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是不明确的,但是我认为它会期待后者。