0

複数のsqlite ファイルなどを含むこの投稿 Core Data を読みました。

ただし、分離されたsqliteファイルの作成に関するわかりやすい情報は見つかりません(たとえば、さまざまなユーザーのデータを保存するため)。それは私がやっていることです:

- (NSPersistentStoreCoordinator *)persistentStoreCoordinator
{
    if (__persistentStoreCoordinator != nil)
    {
        return __persistentStoreCoordinator;
    }
    NSURL *storeURL = [[self applicationDocumentsDirectory] URLByAppendingPathComponent:[NSString stringWithFormat:@"%@.sqlite", _userID]];


    __persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:[self managedObjectModel]];
    NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys: [NSNumber numberWithBool:YES], NSMigratePersistentStoresAutomaticallyOption, [NSNumber numberWithBool:YES], NSInferMappingModelAutomaticallyOption, nil];

    NSError *error = nil;
    if (![__persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeURL options:options error:&error]) {
        NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
        abort();
    }
    return __persistentStoreCoordinator;
}

- (NSManagedObjectModel *)managedObjectModel {
    if (__managedObjectModel != nil) {
        return __managedObjectModel;
    }

    NSURL *modelURL = [[NSBundle mainBundle] URLForResource:@"DataBase" withExtension:@"momd"];
    __managedObjectModel = [[NSManagedObjectModel alloc] initWithContentsOfURL:modelURL];
    return __managedObjectModel;
}

- (NSManagedObjectContext *)managedObjectContext
{
    if (__managedObjectContext != nil)
    {
        return __managedObjectContext;
    }

    NSPersistentStoreCoordinator *coordinator = [self persistentStoreCoordinator];

    if (coordinator != nil)
    {
            __managedObjectContext = [[NSManagedObjectContext alloc] init];
            [__managedObjectContext setPersistentStoreCoordinator:coordinator];   
    }
    return __managedObjectContext;
}

ユーザーを変更すると、ユーザーも変更されますが、そうではNSPersistentStoreCoordinatorありNSManagedObjectContextませNSManagedObjectModelん (ありますNSFetchRequest)。それでは、追加のエンティティ(ユーザーなど)を作成せずに、別のユーザーのコアデータ(セルフデータと「フェッチリクエスト」を含む)を分離する方法は?

4

1 に答える 1

0

おそらく、複数のコンテキストを独自のストアで使用できますが、同じデータ モデルに基づいています。このようにして、異なる店舗に同じエンティティを使用できます。

于 2012-08-04T20:11:04.657 に答える