Я включил локальный обмен данными между моим приложением Parse и iOS Today Extension в соответствии с официальной документацией здесь, выполнив необходимые вызовы инициализации как в методе AppDelegate
моего приложения, так и в методе viewDidLoad
моего расширения с правильными цепочками ключей и группами приложений.
В методе didFinishLaunchingWithOptions
в AppDelegate
:
[Parse enableLocalDatastore];
[Parse enableDataSharingWithApplicationGroupIdentifier:@"group.com.my.app"];
[Parse setApplicationId:@"appId" clientKey:@"clientKey"];
В методе viewDidLoad
моего расширения:
// Ensure Parse is only initialized once, otherwise an exception will be thrown
if(![Parse isLocalDatastoreEnabled]) {
[Parse enableDataSharingWithApplicationGroupIdentifier:@"group.com.my.app"
containingApplication:@"com.my.app"];
[Parse enableLocalDatastore];
// Setup Parse
[Parse setApplicationId:@"appId"
clientKey:@"clientKey"];
}
Я мог бы делать запросы в своем расширении, но я заметил, что если я начну в состоянии входа в систему, перейду в свое приложение и выполню выход из системы, [PFUser currentUser]
останется отличным от нуля в расширении (я все еще могу получить доступ к информации в currentUser). И наоборот, если я начну в состоянии выхода из системы, зайду в приложение, войду в систему и переключусь на свой добавочный номер, [PFUser currentUser]
останется нулевым.
Любые идеи о том, почему изменения в статусе входа в систему PFUser
не синхронизируются в приложении и его расширениях?
Если бы я отключил проверку isLocalDatastoreEnabled
, виджет сбой при каждом втором последующем вызове, но при перезагрузке, по крайней мере, состояние currentUser
будет синхронизировано, так что все это очень озадачивает.