我已经按照此处的官方文档在我的 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
将是同步的,所以这一切都非常令人费解。