Ios5 iOS中的本地通知问题
我正在为表中的某些行设置特定日期和时间的本地通知。所以考虑 案例1:当用户第一次设置本地通知时,他从日期选择器中选择日期,我将其传递给本地通知对象firedate。Ios5 iOS中的本地通知问题,ios5,ios6,notifications,uilocalnotification,Ios5,Ios6,Notifications,Uilocalnotification,我正在为表中的某些行设置特定日期和时间的本地通知。所以考虑 案例1:当用户第一次设置本地通知时,他从日期选择器中选择日期,我将其传递给本地通知对象firedate。 NSArray *notificationarray = [[UIApplication sharedApplication]scheduledLocalNotifications]; if([notificationarray count]== 0) { m_alarmLoc
NSArray *notificationarray = [[UIApplication sharedApplication]scheduledLocalNotifications];
if([notificationarray count]== 0)
{
m_alarmLocalNotification = [[UILocalNotification alloc] init];
m_alarmLocalNotification.fireDate = DateTime;
m_alarmLocalNotification.timeZone = [NSTimeZone defaultTimeZone];
NSDictionary *infoDict = [NSDictionary dictionaryWithObject:m_Name forKey:@"ID"];
m_alarmLocalNotification.userInfo = infoDict;
[[UIApplication sharedApplication] scheduleLocalNotification:m_alarmLocalNotification];
NSArray *notificationarray = [[UIApplication sharedApplication]scheduledLocalNotifications];
NSLog(@"notification count:%d",[notificationarray count]);
for (int i = 0;i < [notificationarray count];i++)
{
UILocalNotification *notificationObject=[notificationarray objectAtIndex:i];
NSString *Name=[notificationObject.userInfo valueForKey:@"ID"];
if([Name isEqualToString:m_Name])
{
[[UIApplication sharedApplication] cancelLocalNotification:notificationObject];
}
}
案例2:修改本地通知日期。
NSArray *notificationarray = [[UIApplication sharedApplication]scheduledLocalNotifications];
for (int i = 0;i < [notificationarray count];i++)
{
UILocalNotification *notificationObject=[notificationarray objectAtIndex:i];
NSString *Name=[notificationObject.userInfo valueForKey:@"ID"];
if(Name isEqualToString:m_Name])
{
[[UIApplication sharedApplication] cancelLocalNotification:notificationObject];
m_alarmLocalNotification = [[UILocalNotification alloc] init];
m_alarmLocalNotification.fireDate = DateTime;
m_alarmLocalNotification.timeZone = [NSTimeZone defaultTimeZone];
NSDictionary *infoDict = [NSDictionary dictionaryWithObject:m_noteName forKey:@"ID"];
m_alarmLocalNotification.userInfo = infoDict;
[[UIApplication sharedApplication] scheduleLocalNotification:m_alarmLocalNotification];
}
else
{
m_alarmLocalNotification = [[UILocalNotification alloc] init];
m_alarmLocalNotification.fireDate = DateTime;
m_alarmLocalNotification.timeZone = [NSTimeZone defaultTimeZone];
NSDictionary *infoDict = [NSDictionary dictionaryWithObject:m_noteName forKey:@"ID"];
m_alarmLocalNotification.userInfo = infoDict;
[[UIApplication sharedApplication] scheduleLocalNotification:m_alarmLocalNotification];
}
}
NSArray*notificationarray=[[UIApplication sharedApplication]ScheduledLocalNotification];
对于(int i=0;i<[notificationarray count];i++)
{
UILocalNotification*notificationObject=[notificationarray objectAtIndex:i];
NSString*Name=[notificationObject.userInfo valueForKey:@“ID”];
if(名称isEqualToString:m_Name])
{
[[UIApplication sharedApplication]取消通知:通知对象];
m_alarmLocalNotification=[[UILocalNotification alloc]init];
m_alarmLocalNotification.fireDate=日期时间;
m_alarmLocalNotification.timeZone=[NSTimeZone defaultTimeZone];
NSDictionary*infoDict=[NSDictionary Dictionary WithObject:m_noteName forKey:@“ID”];
m_alarmLocalNotification.userInfo=infoDict;
[[UIApplication sharedApplication]scheduleLocalNotification:m_alarmLocalNotification];
}
其他的
{
m_alarmLocalNotification=[[UILocalNotification alloc]init];
m_alarmLocalNotification.fireDate=日期时间;
m_alarmLocalNotification.timeZone=[NSTimeZone defaultTimeZone];
NSDictionary*infoDict=[NSDictionary Dictionary WithObject:m_noteName forKey:@“ID”];
m_alarmLocalNotification.userInfo=infoDict;
[[UIApplication sharedApplication]scheduleLocalNotification:m_alarmLocalNotification];
}
}
案例3:删除本地通知。
NSArray *notificationarray = [[UIApplication sharedApplication]scheduledLocalNotifications];
if([notificationarray count]== 0)
{
m_alarmLocalNotification = [[UILocalNotification alloc] init];
m_alarmLocalNotification.fireDate = DateTime;
m_alarmLocalNotification.timeZone = [NSTimeZone defaultTimeZone];
NSDictionary *infoDict = [NSDictionary dictionaryWithObject:m_Name forKey:@"ID"];
m_alarmLocalNotification.userInfo = infoDict;
[[UIApplication sharedApplication] scheduleLocalNotification:m_alarmLocalNotification];
NSArray *notificationarray = [[UIApplication sharedApplication]scheduledLocalNotifications];
NSLog(@"notification count:%d",[notificationarray count]);
for (int i = 0;i < [notificationarray count];i++)
{
UILocalNotification *notificationObject=[notificationarray objectAtIndex:i];
NSString *Name=[notificationObject.userInfo valueForKey:@"ID"];
if([Name isEqualToString:m_Name])
{
[[UIApplication sharedApplication] cancelLocalNotification:notificationObject];
}
}
NSArray*notificationarray=[[UIApplication sharedApplication]ScheduledLocalNotification];
NSLog(@“通知计数:%d”,[notificationarray计数]);
对于(int i=0;i<[notificationarray count];i++)
{
UILocalNotification*notificationObject=[notificationarray objectAtIndex:i];
NSString*Name=[notificationObject.userInfo valueForKey:@“ID”];
if([Name IsequalString:m_Name])
{
[[UIApplication sharedApplication]取消通知:通知对象];
}
}
面临的问题。
我不确定我的做法是否正确。
1) 即使我删除我的应用并重新安装它,默认的schedulednotification数组也不会被释放。我的意思是它包含一些以前的通知。
2) 每当我删除我的单元格时,我希望本地通知应该被删除
问候
Ranjit如果在修改通知时使用以下代码,情况会如何
NSArray *notificationarray = [[UIApplication sharedApplication] scheduledLocalNotifications];
[notificationarray enumerateObjectsUsingBlock:^(UILocalNotification *notification,NSUInteger idx, BOOL *stop) {
if ([[notification.userInfo valueForKey:@"ID"] isEqual:@""]) {
notification.fireDate = [NSDate date];
}
}];