2012-06-17 6 views
0

Раньше я работал над локальными уведомлениями, но теперь у меня проблемы. Предположим сегодня, я должен установить уведомление за 1 день до даты: 07/07/2012 в моем приложении. Как я смогу это сделать. Я устанавливаю уведомление, как это ..Локальное уведомление в iphone

- (IBAction) scheduleNotification:(id) sender { 

    AppDelegate *delegate = (AppDelegate *)[[UIApplication sharedApplication] delegate]; 
    NSDateFormatter *formatter = [[[NSDateFormatter alloc]init]autorelease]; 

    for (int i = 0; i< [delegate.viewController.contactList count] ; i++) { 
     UILocalNotification *localNotification = [prototypeNotification copy]; 
     NSString *name = [[delegate.viewController.contactList objectAtIndex:i]objectForKey:NAME_KEY]; 
     NSString *birthday = [[delegate.viewController.contactList objectAtIndex:i]objectForKey:BIRTHDAY_KEY]; 
     if (birthday) { 
      [formatter setDateFormat:@"MM/dd/yyyy"]; 
      NSDate *date = [formatter dateFromString:birthday]; 
      if (date == nil) { 
       [formatter setDateFormat:@"MM/dd"]; 
       NSDate *date = [formatter dateFromString:birthday]; 
      } 
      else { 

      } 
      self.alarmTime = [date dateByAddingTimeInterval:10]; 
      localNotification.fireDate = alarmTime; 
      localNotification.timeZone = [NSTimeZone defaultTimeZone]; 
      localNotification.applicationIconBadgeNumber = 1; 

      NSString *itemName = @"B'day Alert!!!"; 
      NSString *msgName = [NSString stringWithFormat:@"Celebrate %@'s B'day",name]; 
      NSDictionary *userDict = [NSDictionary dictionaryWithObjectsAndKeys:itemName,MessageKey, msgName,TitleKey, nil]; 
      localNotification.userInfo = userDict; 
      localNotification.soundName = self.soundName; 
      // Schedule the notification 
      [[UIApplication sharedApplication] scheduleLocalNotification:localNotification]; 

     } 

     else { 
//   write else part 
     } 
     [localNotification release]; 
    } 

} 

Когда я сталкиваюсь NSDate *date = [formatter dateFromString:birthday]; эта строка, дата не подходит точно, так что я не в состоянии установить локальное оповещение должным образом. Если что-то не так, пожалуйста, помогите мне.

ответ

0

NSDateFormatter имеет другое поведение, чем вы думаете. Если вы смущены, использует ли он GMT, UTC, часовой пояс, основанный на нашей нынешней системной локали или что-то еще, прочитайте этот вопрос и ответ: NSDateFormatter return incorrect date from string

Смежные вопросы