我允许在我的应用程序中共享itunes,但我注意到coredata在文档目录中创建sqlite
我可以将此文件的保存更改为库吗,如果可以,如何更改
最诚挚的问候
最佳答案
这是可能的。我制作了一个小辅助方法,它创建了一条无法通过 iTunes 访问的路径。数据库将存储在库目录中,该目录包含在itunes备份中。
- (NSString *)applicationPrivateDocumentsDirectory {
static NSString *path;
if (!path) {
NSString *libraryPath = [NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES) lastObject];
path = [libraryPath stringByAppendingPathComponent:@"Private Documents"];
BOOL isDirectory;
if (![[NSFileManager defaultManager] fileExistsAtPath:path isDirectory:&isDirectory]) {
NSError *error = nil;
if (![[NSFileManager defaultManager] createDirectoryAtPath:path withIntermediateDirectories:YES attributes:nil error:&error]) {
NSLog(@"Can't create directory %@ [%@]", path, error);
abort(); // replace with proper error handling
}
}
else if (!isDirectory) {
NSLog(@"Path %@ exists but is no directory", path);
abort(); // replace with error handling
}
}
return path;
}
然后你会替换
NSURL *storeURL = [[self applicationDocumentsDirectory] URLByAppendingPathComponent:@"SomeApp.sqlite"];
在 - (NSPersistentStoreCoordinator *)persistentStoreCoordinator
方法中:
NSURL *storeURL = [NSURL fileURLWithPath:[[self applicationPrivateDocumentsDirectory] stringByAppendingPathComponent:@"SomeApp.sqlite"]];
关于iphone - 将 coredata 文件存储在文档目录之外?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5243917/