2017-04-03 79 views
1

我有一個今日延伸的應用程序。使用應用程序組,我可以爲應用程序和擴展程序提供單個存儲庫。但是,由於解決方案只能部分工作,所以我必須缺少一些東西。如果我在應用程序中,我可以添加一條記錄並在小部件中看到相同的記錄。但是,如果更改列的值,例如,將布爾值從true設置爲false。如果在擴展程序中創建該應用程序,該應用程序將不會看到該更改,反之亦然。我正在將更改保存到Core Data:共享核心數據 - 我錯過了什麼?

_record?.managedObjectContext?.save() 

使用DB瀏覽器,我可以驗證是否進行了更改;在數據庫中。顯然,我錯過了一些東西。任何想法,將不勝感激。

回答

0

確保您使用的是雙方

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

相同分貝正如你可以看到我使用的神奇紀錄,但我指定要使用的共享源碼文件

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

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

我可以讓應用程序和小部件使用應用程序組查看共享數據庫。但相反的觀點只看到添加和刪除沒有更新。 – Chazman

相關問題