应用程序关闭时如何在 EKEventStore 中检测?
Posted
技术标签:
【中文标题】应用程序关闭时如何在 EKEventStore 中检测?【英文标题】:How to detect in EKEventStore when the app is closed? 【发布时间】:2014-01-31 08:53:11 【问题描述】:在我的应用程序中,当用户运行应用程序时,我第一次获取事件的 EKEventStore 并将它们本地保存在 CoreData 中。 对于这一点,我只想在事件存储发生任何变化时从 EventStore 获取事件。
我使用了 EKEventStoreChangedNotification,当我的应用程序在后台时,当我在日历中添加事件时,它工作正常。但是当应用关闭时它不起作用。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
self.eventStore = [[EKEventStore alloc]init];
[self.eventStore requestAccessToEntityType:EKEntityTypeEvent completion:^(BOOL granted, NSError *error)
if (granted)
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(storeChanged:)
name:EKEventStoreChangedNotification
object:self.eventStore];
];
return YES;
-(void)storeChanged:(NSNotification *)notif
// Update core data
【问题讨论】:
【参考方案1】:你有没有试过在里面放一个观察者
- (void)applicationDidEnterBackground:(UIApplication *)application
您的 AppDelegate?
【讨论】:
我想这只会在我的应用程序在后台运行时才需要注意,但是当我的应用程序甚至没有运行(甚至在后台)时怎么办 当您的应用处于非活动状态时,没有机会对新事件做出反应。每次运行应用程序时都必须检查 EKEventStore。以上是关于应用程序关闭时如何在 EKEventStore 中检测?的主要内容,如果未能解决你的问题,请参考以下文章
无法在 macOS 的 Swift 应用程序中请求日历事件访问(通过 EKEventStore)
EKEventStore 导致 SpringBoard 崩溃
在 EKEventStore 中检索具有特定标题的 EKEvent
iOS:EKEventStore源/ defaultCalendarForNewEvents / calendarsForEntityType在授权后均不返回任何内容