【发布时间】:2012-09-03 05:02:06
【问题描述】:
我正在制作一个使用 Core Data 的应用程序,为了我的应用程序的目的,我需要将一个预填充的数据库与应用程序包捆绑在一起。
我正在使用UIManagedDocument
为此,我使用应用程序创建了数据库,然后加载了数据。然后我在我的 Mac 中搜索 iOS Simulator 文件夹并将persistentStore 文件拖放到应用程序包中。
稍后在代码中我将其复制到NSDocumentDirectory,因为用户将被允许在运行时编辑数据库。这是通过以下方法完成的:
if(![[NSFileManager defaultManager] fileExistsAtPath:[self.appDatabase.fileURL path]])
{
// COPY FROM BUNDLE
NSFileManager *fileManager = [NSFileManager defaultManager];
NSError *error;
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *DB = [[paths lastObject] stringByAppendingPathComponent:@"Default App Database"];
DB = [DB stringByAppendingPathComponent:@"StoreContent"];
[fileManager createDirectoryAtPath:DB withIntermediateDirectories:YES attributes:nil error:&error];
NSLog(@"create directory error: %@",error);
DB = [DB stringByAppendingPathComponent:@"persistentStore"];
NSString *shippedDB = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"persistentStore"];
NSLog(@"%d",[fileManager fileExistsAtPath:shippedDB]);
[fileManager copyItemAtPath:shippedDB toPath:DB error:&error];
NSLog(@"Copy error %@",error);
}
一切正常!但是,我不确定这是否会产生某种类型的错误。所以我的问题是,可以使用 NSFileManager 处理从 UIManagedDocument 创建的 Core Data 数据库吗?
而且,Apple 会在审核过程中抱怨捆绑persistentStore 文件吗?
【问题讨论】:
标签: ios database core-data uimanageddocument