我正在尝试使用以下代码关闭CoreData中的WAL:
// Code to disable journaling mode
NSString *applicationDocumentsDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
NSString *urlString = [applicationDocumentsDirectory stringByAppendingPathComponent: @"saori.sqlite"];
NSURL *url = [[NSURL alloc] initWithString:urlString];
NSDictionary *options = @{NSSQLitePragmasOption:@{@"journal_mode":@"DELETE"}};
NSPersistentStoreCoordinator *psc = [[NSPersistentStoreCoordinator alloc] init];
[psc addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:url options:options error:nil];
这是我需要转换为URL的NSString:
/Users/rolfmarsh/Library/Application Support/iPhone Simulator/7.1/Applications/7A614C51-AC51-4F5B-9716-6E3D2F160324/Documents/saori.sqlite
当我在此语句中使用该字符串时,它会生成 nil 。
NSURL *url = [[NSURL alloc] initWithString:urlString];
我没有看到字符串有什么问题。我做错了什么?
答案 0 :(得分:4)
阅读NSURL
的文档。您有一个文件路径,您需要从文件路径创建文件URL。
NSURL *url = [NSURL fileURLWithPath:urlString];