0
我已經在一個長期生活的應用程序中實現了本地通知。該應用程序每天運行24小時亭式模式。其中一個本地通知每天觸發一次,另一個觸發每小時一次。每天觸發一次的通知將刪除前一天的所有本地核心數據信息。每小時觸發一次的通知是應用程序的「心跳」,並且每小時在服務器上創建一次檢查。如何區分本地通知
下面是每小時心跳計劃(這是在我的主視圖 - 控制):
- (void)scheduleHeartBeat
{
[[UIApplication sharedApplication] cancelAllLocalNotifications];
UILocalNotification *heartbeat = [[UILocalNotification alloc] init];
NSCalendar *calendar = [NSCalendar currentCalendar];
NSDateComponents *components = [[NSDateComponents alloc] init];
components = [[NSCalendar currentCalendar] components:NSDayCalendarUnit | NSMonthCalendarUnit | NSYearCalendarUnit fromDate:[NSDate date]];
NSInteger day = [components day];
NSInteger month = [components month];
NSInteger year = [components year];
[components setDay: day];
[components setMonth: month];
[components setYear: year];
[components setHour: 00];
[components setMinute: 10];
[components setSecond: 0];
[calendar setTimeZone: [NSTimeZone systemTimeZone]];
NSDate *dateToFire = [calendar dateFromComponents:components];
heartbeat.fireDate = dateToFire;
heartbeat.timeZone = [NSTimeZone systemTimeZone];
heartbeat.repeatInterval = NSHourCalendarUnit;
[[UIApplication sharedApplication] scheduleLocalNotification:heartbeat];
}
我調用viewDidLoad中上述方法。
然後在我的AppDelegate我有以下幾點:
- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification
{
application.applicationIconBadgeNumber = 0;
[[OLEngine myEngine] deleteStuffFromYesterday:@"MyObject"];
}
在didReceiveLocalNotification我需要區分它們之間本地通知已經被解僱了,因爲我不想調用方法每隔一小時deleteStuffFromYesterday做的 - 每一次天。
如何在我的應用程序委託代碼中區分這些計劃的本地通知?
你有這種與通知的例子嗎? – motionpotion
只需添加一些代碼。這只是一本應該熟悉的字典。 – Karl
感謝您的幫助。它很棒! – motionpotion