Core-Data ストアからのデータを表示する必要があるビュー コントローラーがいくつかあります。
それぞれが同じコンテキストから管理対象オブジェクトをフェッチしますが、複数回 VC がフェッチを行うと、何らかの理由で管理対象オブジェクトの数が増加しますか?
managedObjects を同じコンテキスト内で共有できず、ポインター参照のみを共有できますか?
ビュー コントローラが同じデータを要求すると、管理対象オブジェクトの数が増えるのはなぜですか?
コード:
- (void) updateCacheWithObject:(Object *)object
{
[self.coreDataSaveQueue addOperationWithBlock:^{
NSManagedObjectContext *saveContext = [[NSManagedObjectContext alloc] init];
[saveContext setPersistentStoreCoordinator:[self persistentStoreCoordinator]];
AudioObject *object = [NSEntityDescription
insertNewObjectForEntityForName:@"object"
inManagedObjectContext:saveContext];
[audioObject setValue:object.localPath forKey:@"localPath"];
[audioObject setValue:object.title forKey:@"title"];
[audioObject setValue:object.data forKey:@"data"];
NSError *error;
// does the psc have a store
if ([saveContext.persistentStoreCoordinator.persistentStores count] == 0) {
[saveContext setPersistentStoreCoordinator:[self persistentStoreCoordinator]];
}
if (![saveContext save:&error])
{
NSLog(@"Couldn't save: %@", [error localizedDescription]);
NSLog(@"Error user info dictionary is %@", [error userInfo]);
}
}