在iOS实现本地通知这篇文章中,介绍了通知的定义和最简单的实现。下面我将介绍一个比较复杂一点的例子,实现的效果如下:
开启通知。
通知的内容。
通知的次数。
下面是具体的实现:
首先是通知次数取消:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOp
tions:(NSDictionary *)launchOptions { // Override point for customization after application launch.
/
application.applicationIconBadgeNumber = 0;
// Add the view controller’s view to the window and display.
[self.window addSubview:viewController.view];
[self.window makeKeyAndVisible];return YES;
}
通知的具体实现:
#pragma mark –
#pragma mark onChageValue
-(IBAction)onChangeValue:(id)sender
{
UISwitch *switch1=(UISwitch *)sender;
if (switch1.on) {
UILocalNotification *notification=[[UILocalNotification alloc] init];
NSDate *now1=[NSDate date];
notification.timeZone=[NSTimeZonedefaultTimeZone];
notification.repeatInterval=NSDayCalendarUnit;
notification.applicationIconBadgeNumber = 1;
notification.alertAction = NSLocalizedString(@”显示”, nil);
switch (switch1.tag) {
case 0:
{
notification.fireDate=[now1 dateByAddingTimeInterval:10];
notification.alertBody=self.myLable1.text;
}
break;
case 1:
{
notification.fireDate=[now1 dateByAddingTimeInterval:20];
notification.alertBody=self.myLable2.text;
}
break;
case 2:
{
notification.fireDate=[now1 dateByAddingTimeInterval:30];
notification.alertBody=self.myLable3.text;
}
break;
default:
break;
}
[notification setSoundName:UILocalNotificationDefaultSoundName];
NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:
[NSString stringWithFormat:@"%d",switch1.tag], @”key1″, nil];
[notification setUserInfo:dict];
[[UIApplication sharedApplication]scheduleLocalNotificatio n:notification];
}else {
NSArray *myArray=[[UIApplication sharedApplication] scheduledLocalNotifications];
for (int i=0; i<[myArray count]; i++) {
UILocalNotification*myUILocalNotification=[myArray objectAtIndex:i];
if ([[[myUILocalNotification userInfo] objectForKey:@”key1″] intValue]==switch1.tag) {
[[UIApplication sharedApplication] cancelLocalNotification:myUILocalNotification];
}
}
}
}
源代码:http://easymorse-iphone.googlecode.com/svn/trunk/iphone.localnotification/