Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/97.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在固定时间显示本地通知,ios?_Ios_Calendar_Notifications_Alarm - Fatal编程技术网

在固定时间显示本地通知,ios?

在固定时间显示本地通知,ios?,ios,calendar,notifications,alarm,Ios,Calendar,Notifications,Alarm,我使用下面的代码在固定时间显示通知。然而,它不适合我的输出 - (IBAction)bt_set:(id)sender { // Setting all the information about our date int hour = 8; int minutes = 19; int day = 19; int month = 10; int year = 2014; NSCalendar *calendar = [[NSCalendar alloc] initWithCalend

我使用下面的代码在固定时间显示通知。然而,它不适合我的输出

    - (IBAction)bt_set:(id)sender {

// Setting all the information about our date
int hour = 8;
int minutes = 19;
int day = 19;
int month = 10;
int year = 2014;

NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *components = [[NSDateComponents alloc] init];

[components setDay:day];
[components setMonth:month];
[components setYear:year];
[components setMinute:minutes];
[components setHour:hour];

NSDate *myNewDate = [calendar dateFromComponents:components];
//[components release];
//[calendar release];

[self scheduleNotificationForDate:myNewDate];

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Note"
                                                message:@"Alarm has been set"
                                               delegate:self
                                      cancelButtonTitle:@"OK"
                                      otherButtonTitles:nil];
[alert show];

  }
这是通知代码

    - (void)scheduleNotificationForDate:(NSDate *)date
  {
// Here we cancel all previously scheduled notifications
[[UIApplication sharedApplication] cancelAllLocalNotifications];

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

localNotification.fireDate = date;
NSLog(@"%@",date);
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);

/* Here we set notification sound and badge on the app's icon "-1"
 means that number indicator on the badge will be decreased by one
 - so there will be no badge on the icon */
localNotification.soundName = UILocalNotificationDefaultSoundName;
localNotification.applicationIconBadgeNumber = -1;

[[UIApplication sharedApplication] scheduleLocalNotification:localNotification];
}

这是我在日志中记录的日期

    Notification will be shown on: 2014-10-19 02:49:00 +0000
我想这和时区有关

我的时区是格林尼治标准时间+5:30

请帮帮我你有一些(NSDate*)日期----

添加以下代码以获取适当的系统时间:

NSTimeZone* sourceTimeZone = [NSTimeZone timeZoneWithAbbreviation:@"GMT"];
NSTimeZone* destinationTimeZone = [NSTimeZone systemTimeZone];

NSInteger sourceGMTOffset = [sourceTimeZone secondsFromGMTForDate:sourceDate];
NSInteger destinationGMTOffset = [destinationTimeZone secondsFromGMTForDate:sourceDate];
NSTimeInterval interval = destinationGMTOffset - sourceGMTOffset;

NSDate* destinationDate = [[NSDate alloc] initWithTimeInterval:interval sinceDate:sourceDate];

很抱歉迟了答复。我能用你的解决方案解决它。Thnx