2017-04-03 2 views
1

Ich habe eine App mit einer Today-Erweiterung. Mit App-Gruppen kann ich ein einzelnes Repository für die App und die Erweiterung erstellen. Allerdings muss mir etwas fehlen, da die Lösung nur teilweise funktioniert. Wenn ich in der App bin, kann ich einen Datensatz hinzufügen und sehe den gleichen Eintrag im Widget. Wenn Sie jedoch den Wert einer Spalte ändern, wird beispielsweise ein Boolescher Wert von "Wahr" auf "Falsch" gesetzt. Die App sieht die Änderung nicht, wenn sie in der Erweiterung vorgenommen wurde und umgekehrt. Ich speichere die Änderung in Core Data:Gemeinsame Kerndaten - Was fehlt mir?

_record?.managedObjectContext?.save() 

Mit DB Browser kann ich überprüfen, dass die Änderung vorgenommen wurde; ist in der DB. Klar, ich vermisse etwas. Irgendwelche Ideen würden geschätzt werden.

Antwort

0

Stellen Sie sicher, dass die gleiche db in beiden Seiten verwenden

- (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]]; 
} 

Wie Sie ich verwende magische Rekord sehen kann, aber ich bin unter Angabe der Anteil SQLite Datei

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

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

zu verwenden Ich kann sowohl die App als auch das Widget abrufen, um die freigegebene Datenbank mithilfe von App-Gruppen anzuzeigen. Aber die gegenteilige Ansicht sieht nur Ergänzungen und Löschungen nicht Updates. – Chazman

Verwandte Themen