2012-08-29 39 views
1

因爲我只是不能得到一個很好的答案,花那麼多時間在這,我會問我的問題在細節UILocalnotification不點火

我要的是根據日期選擇器創建報警。將現在的鬧鐘設置爲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]; 
} 

回答

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;