UILocalnotification没有开火

时间:2012-08-29 16:11:18

标签: objective-c

由于我不能为此得到一个好的答案并花费这么多时间,我会详细询问我的问题

我想要的只是根据日期选择器创建一个警报。 从现在开始设置闹钟到10秒,效果很好。 UIDatePicker,是作品(打印日期 - 但不是我选择的日期,但3小时后) 我知道当地时间有问题,但我找不到任何好的解释。

我的建议,我想几乎每个人都不会参与当地时间,而是接受每个用户的时钟,并根据他的时间设置闹钟。

我的代码,不工作,我不知道为什么。它没有开火(只有我把它设置为10秒后)

拜托,我知道时区应该是不同的东西,但是如果你能解释究竟做什么和怎么做,那就太好了。感谢。

这是代码:

-(void)setDatePicker
{
    CGRect pickerFrame = CGRectMake(0,265,0,0);

    UIDatePicker *myPicker = [[UIDatePicker alloc] initWithFrame:pickerFrame];
    [myPicker addTarget:self action:@selector(pickerChanged:) forControlEvents:UIControlEventValueChanged];


   [[[CCDirector sharedDirector] view] addSubview:myPicker];
     [myPicker release];
}



-(void)pickerChanged:(UIDatePicker*) datePicker
{


     date=datePicker.date;

     NSLog(@"value: %@",date);
}

和本地通知:

-(void) scheduleNotificationForDate: (NSDate*)theDate
{



/* Here we cancel all previously scheduled notifications */
[[UIApplication sharedApplication] cancelAllLocalNotifications];

UILocalNotification *localNotification = [[UILocalNotification alloc] init];


//NSDateFormatter *dateFormat = [[[NSDateFormatter alloc]init]autorelease];
//[dateFormat setDateFormat:@"YYYY-MM-dd HH:mm:ss"];
//NSDate *notificationDate = [dateFormat stringFromDate:theDate];


localNotification.fireDate = theDate;
NSLog(@"Notification will be shown on: %@",localNotification.fireDate);

localNotification.timeZone = [NSTimeZone defaultTimeZone];
localNotification.alertBody = [NSString stringWithFormat:
                               @"Your notification message"];
localNotification.alertAction = NSLocalizedString(@"View details", nil);



localNotification.soundName = UILocalNotificationDefaultSoundName;
localNotification.applicationIconBadgeNumber = -1;

[[UIApplication sharedApplication] scheduleLocalNotification:localNotification];
}

1 个答案:

答案 0 :(得分:0)

我明白了。

我不得不改变格式并且工作正常。 与区域无关。

NSDateFormatter *dateFormat = [[[NSDateFormatter alloc]init]autorelease];
     [dateFormat setDateFormat:@"YYYY-MM-dd HH:mm:ss"];
    NSString *dateString = [dateFormat stringFromDate:date];
    NSDate *notificationDate = [dateFormat dateFromString:dateString];


    localNotification.fireDate = notificationDate;