0
私のiOSアプリケーションには、郵便番号と地理位置情報を持つ都市のリストを含む.sqliteデータベースが埋め込まれています。コアデータ:バンドルデータベースで永続ストアを初期化する
- (void)initializeCoreData {
NSURL *modelURL = [[NSBundle mainBundle] URLForResource:@"cities" withExtension:@"momd"];
NSManagedObjectModel *mom = [[NSManagedObjectModel alloc] initWithContentsOfURL:modelURL];
NSAssert(mom != nil, @"Error initializing Managed Object Model");
NSPersistentStoreCoordinator *psc = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:mom];
NSManagedObjectContext *moc = [[NSManagedObjectContext alloc] initWithConcurrencyType:NSMainQueueConcurrencyType];
[moc setPersistentStoreCoordinator:psc];
[self setManagedObjectContext:moc];
NSURL *storeURL = [[NSBundle mainBundle] URLForResource:@"cities" withExtension:@"sqlite"];
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^(void) {
NSError *error = nil;
NSPersistentStoreCoordinator *psc = [[self managedObjectContext] persistentStoreCoordinator];
NSDictionary * options = @{NSSQLitePragmasOption:@{@"journal_mode":@"DELETE"}};
NSPersistentStore *store = [psc addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeURL options:options error:&error];
NSAssert(store != nil, @"Error initializing PSC: %@\n%@", [error localizedDescription], [error userInfo]);
});
}
をあなたが見ることができるように、私は、アプリケーションディレクトリにデータベースをコピーしますが、アプリケーションバンドルから直接それを読んでいない:私は私のコアデータは次のようにスタック初期化
。
私はこのデータベースを読んでいるだけなので、コアデータを初期化するのは安全ですか?またはアプリケーションディレクトリにデータベースをコピーする必要がありますか?