2017-04-03 3 views
1

J'ai une application avec une extension Aujourd'hui. En utilisant les groupes d'applications, je peux avoir un référentiel unique pour l'application et l'extension. Cependant, je dois manquer quelque chose car la solution ne fonctionne que partiellement. Si je suis dans l'application, je peux ajouter un enregistrement et verra ce même enregistrement dans le widget. Cependant, si vous modifiez la valeur d'une colonne, par exemple, définissez un booléen de true à false. L'application ne verra pas la modification si elle a été faite dans l'extension et vice versa. J'enregistre la modification aux données de base:Données de base partagées - Que manque-t-je?

_record?.managedObjectContext?.save() 

En utilisant DB Browser, je suis en mesure de vérifier que la modification a été effectuée; est dans la DB. Clairement, il me manque quelque chose. Toute idée serait appréciée.

Répondre

0

Assurez-vous que vous utilisez le même db dans les deux côtés

- (void)viewDidLoad { 
    [super viewDidLoad]; 

    if ([self.extensionContext respondsToSelector:@selector(setWidgetLargestAvailableDisplayMode:)]) { // iOS 10+ 
     [self.extensionContext setWidgetLargestAvailableDisplayMode:NCWidgetDisplayModeExpanded]; 
    } else { 
     self.preferredContentSize = CGSizeMake(0, 110.0); // iOS 10- 
    } 

    [MagicalRecord setupCoreDataStackWithAutoMigratingSqliteStoreAtURL:[MagicalRecord urlAppGroupStore]]; 
} 

Comme vous pouvez le voir j'utilise disque magique mais je spécifier pour utiliser le fichier SQLite part

NSString *const kAppGroupIdentifier = @"group.com.carlosduclos.myapp"; 

+ (NSURL *)urlAppGroupStore { 
    NSURL *groupURL = [[NSFileManager defaultManager] containerURLForSecurityApplicationGroupIdentifier:kAppGroupIdentifier]; 
    return [groupURL URLByAppendingPathComponent:@"mydb.sqlite"]; 
} 
+0

Je suis en mesure d'obtenir à la fois l'application et le widget pour voir la base de données partagée en utilisant les groupes d'applications. Mais le point de vue opposé ne voit que les ajouts et les suppressions et non les mises à jour. – Chazman