- //取消之前所有的本地通知
- [[UIApplication sharedApplication] cancelAllLocalNotifications];
-
- //清空 icon数量
- [UIApplication sharedApplication].applicationIconBadgeNumber = 0;
-
-
- //启动本地通知
- UILocalNotification *notification=[[UILocalNotification alloc] init];
- if (notification!=nil)
- {
- //现在的时间
- NSDate *now=[NSDate date];
-
-
- //获得系统日期
- NSCalendar * cal=[NSCalendar currentCalendar];
- NSUInteger unitFlags=NSDayCalendarUnit|NSMonthCalendarUnit|NSYearCalendarUnit;
- NSDateComponents * conponent= [cal components:unitFlags fromDate:now];
- NSInteger year=[conponent year];
- NSInteger month=[conponent month];
- NSInteger day=[conponent day];
- //NSString * nsDateString= [NSString stringWithFormat:@"%4d年%2d月%2d日",year,month,day];
-
-
-
- //获得当天的12:00 时间
- NSString * nsStringDate12 = [NSString stringWithFormat:@"%d-%d-%d-%d-%d-%d",
- year, month,day, 12, 0, 0 ];
-
- //根据时间字符串获得NSDate
- NSDateFormatter *dateformatter=[[NSDateFormatter alloc] init];
- [dateformatter setDateFormat:@"YYYY-MM-dd-HH-mm-ss"];
- NSDate * todayTwelve=[dateformatter dateFromString:nsStringDate12];
-
- //然后比较 now跟 todayTwelve那个大,如果已经过了12点,那就设置明天12点
- NSComparisonResult dateResult = [now compare:todayTwelve ];
- if (dateResult == NSOrderedDescending )
- {
- NSDate * tomorrowTwelve = [todayTwelve dateByAddingTimeInterval: 24 * 60 * 60];
-
- notification.fireDate = tomorrowTwelve;
- }
- else
- {
- notification.fireDate= todayTwelve;
- }
- notification.repeatInterval = kCFCalendarUnitDay;
- notification.timeZone=[NSTimeZone defaultTimeZone];
- notification.applicationIconBadgeNumber = 1;
-
- notification.alertBody=@"今天还没上线,好多奖励没领呢";
-
- notification.alertAction = @"打开";
- [[UIApplication sharedApplication] scheduleLocalNotification:notification];
- [notification release];
- }
-
- - (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification
- {
- NSLog(@"获得本地通知");
-
-
- //点击提示框的打开
- application.applicationIconBadgeNumber = 0;
-
-
- }
|