以前写过一篇文章:本地通知,本文是基于此基础的一个简单的例子。
localnotificationAppDelegate.h
#import <UIKit/UIKit.h> @class localnotificationViewController; @interface localnotificationAppDelegate : NSObject <UIApplicationDelegate> { UIWindow *window; localnotificationViewController *viewController; } @property(nonatomic, retain) IBOutlet UIWindow *window; @property(nonatomic, retain) IBOutlet localnotificationViewController *viewController; @end
localnotificationAppDelegate.m
#import "localnotificationAppDelegate.h" #import "localnotificationViewController.h" @implementation localnotificationAppDelegate @synthesize window; @synthesize viewController; #pragma mark - #pragma mark Application lifecycle - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { application.applicationIconBadgeNumber = 0; [self.window addSubview:viewController.view]; [self.window makeKeyAndVisible]; return YES; } #pragma mark - #pragma mark Memory management - (void)dealloc { [viewController release]; [window release]; [super dealloc]; } @end
localnotificationViewController.h
#import <UIKit/UIKit.h> @interface localnotificationViewController : UIViewController { IBOutlet UILabel *myLable1; IBOutlet UILabel *myLable2; IBOutlet UILabel *myLable3; } @property(nonatomic, retain) UILabel *myLable1; @property(nonatomic, retain) UILabel *myLable2; @property(nonatomic, retain) UILabel *myLable3; - (IBAction)onChangeValue:(id)sender; @end
localnotificationViewController.m
#import "localnotificationViewController.h" @implementation localnotificationViewController @synthesize myLable1, myLable2, myLable3; - (void)viewDidLoad { [super viewDidLoad]; [[UIApplication sharedApplication] cancelAllLocalNotifications]; } - (void)viewDidUnload { self.myLable1 = nil; self.myLable2 = nil; self.myLable3 = nil; } - (void)dealloc { [myLable1 release], myLable1 = nil; [myLable2 release], myLable2 = nil; [myLable3 release], myLable3 = nil; [super dealloc]; } #pragma mark - #pragma mark onChageValue - (IBAction)onChangeValue:(id)sender { UISwitch *switchBtn = (UISwitch *)sender; if (switchBtn.on) { UILocalNotification *notification = [[UILocalNotification alloc] init]; NSDate *now = [NSDate date]; notification.timeZone = [NSTimeZone defaultTimeZone]; notification.repeatInterval = NSDayCalendarUnit; notification.applicationIconBadgeNumber = 1; notification.alertAction = NSLocalizedString(@"显示", nil); switch (switchBtn.tag) { case 0: { notification.fireDate = [now dateByAddingTimeInterval:5]; notification.alertBody = self.myLable1.text; } break; case 1: { notification.fireDate = [now dateByAddingTimeInterval:10]; notification.alertBody = self.myLable2.text; } break; case 2: { notification.fireDate = [now dateByAddingTimeInterval:15]; notification.alertBody = self.myLable3.text; } break; default: break; } [notification setSoundName:UILocalNotificationDefaultSoundName]; NSDictionary *dic = [NSDictionary dictionaryWithObjectsAndKeys: [NSString stringWithFormat:@"%d", switchBtn.tag], @"key", nil]; [notification setUserInfo:dic]; [[UIApplication sharedApplication] scheduleLocalNotification:notification]; } else { NSArray *array = [[UIApplication sharedApplication] scheduledLocalNotifications]; for (int i = 0; i < [array count]; i++) { UILocalNotification *myUILocalNotification = [array objectAtIndex:i]; if ([[[myUILocalNotification userInfo] objectForKey:@"key"] intValue] == switchBtn.tag) { [[UIApplication sharedApplication] cancelLocalNotification:myUILocalNotification]; } } } } @end
效果图: