我在官方文档here之后启用了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
检查,则每次后续调用时窗口小部件都会crash,但重新加载时,至少currentUser
的状态将同步,所以这一切都非常令人费解。