DBAccess 创建自定义 DBAccessSettings
DBAccess creating custom DBAccessSettings
我正在测试 DBAccess 以查看是否可以在项目中使用它。我在更改 sqlite 文件的位置时遇到问题,我希望它位于缓存目录中。这是我写到现在的部分代码,在 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];
这将检索 URL 字符串(以 file://
开头的字符串),而不是文件路径。如果你想要那个文件夹的路径,你想使用 path
:
settings.databaseLocation = [applicationCachesDirectory path];
坦率地说,the documentation 对于它期望的是 URL 字符串还是路径是模棱两可的,但我认为它期望的是后者。
我正在测试 DBAccess 以查看是否可以在项目中使用它。我在更改 sqlite 文件的位置时遇到问题,我希望它位于缓存目录中。这是我写到现在的部分代码,在 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];
这将检索 URL 字符串(以 file://
开头的字符串),而不是文件路径。如果你想要那个文件夹的路径,你想使用 path
:
settings.databaseLocation = [applicationCachesDirectory path];
坦率地说,the documentation 对于它期望的是 URL 字符串还是路径是模棱两可的,但我认为它期望的是后者。