清華大佬耗費三個月吐血整理的幾百G的資源,免費分享!....>>>
第一步:創(chuàng)建本地推送 // 創(chuàng)建一個本地推送 UILocalNotification *notification = [[[UILocalNotification alloc] init] autorelease]; //設(shè)置10秒之后 NSDate *pushDate = [NSDate dateWithTimeIntervalSinceNow:10]; if (notification != nil) { // 設(shè)置推送時間 notification.fireDate = pushDate; // 設(shè)置時區(qū) notification.timeZone = [NSTimeZone defaultTimeZone]; // 設(shè)置重復(fù)間隔 notification.repeatInterval = kCFCalendarUnitDay; // 推送聲音 notification.soundName = UILocalNotificationDefaultSoundName; // 推送內(nèi)容 notification.alertBody = @"推送內(nèi)容"; //顯示在icon上的紅色圈中的數(shù)子 notification.applicationIconBadgeNumber = 1; //設(shè)置userinfo 方便在之后需要撤銷的時候使用 NSDictionary *info = [NSDictionary dictionaryWithObject:@"name"forKey:@"key"]; notification.userInfo = info; //添加推送到UIApplication UIApplication *app = [UIApplication sharedApplication]; [app scheduleLocalNotification:notification]; } 第二步:接收本地推送 - (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification*)notification{ UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"iWeibo" message:notification.alertBody delegate:nil cancelButtonTitle:@"確定" otherButtonTitles:nil]; [alert show]; // 圖標(biāo)上的數(shù)字減1 application.applicationIconBadgeNumber -= 1; } 第三步:解除本地推送 // 獲得 UIApplication UIApplication *app = [UIApplication sharedApplication]; //獲取本地推送數(shù)組 NSArray *localArray = [app scheduledLocalNotifications]; //聲明本地通知對象 UILocalNotification *localNotification; if (localArray) { for (UILocalNotification *noti in localArray) { NSDictionary *dict = noti.userInfo; if (dict) { NSString *inKey = [dict objectForKey:@"key"]; if ([inKey isEqualToString:@"對應(yīng)的key值"]) { if (localNotification){ [localNotification release]; localNotification = nil; } localNotification = [noti retain]; break; } } } //判斷是否找到已經(jīng)存在的相同key的推送 if (!localNotification) { //不存在初始化 localNotification = [[UILocalNotification alloc] init]; } if (localNotification) { //不推送 取消推送 [app cancelLocalNotification:localNotification]; [localNotification release]; return; } }