title: UILocalNotification fires immediately instead of at scheduled time
body: <p>I have an object that stores times in an NSArray as a NSString.  I chose NSString since that's what I end up displaying a lot instead of the NSDate.  I'm trying to setup a UILocalNotification for it.  What I've done is:</p>
  
  <pre><code>NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
  dateFormatter.timeZone = [NSTimeZone systemTimeZone];
  dateFormatter.dateFormat = @"h:mm a";
  
  for (NSString *s in _times) {
      NSDate *date = [dateFormatter dateFromString:s];
      NSCalendar *calendar = [NSCalendar currentCalendar];
      NSDateComponents *dateComponents = [calendar components:(NSYearCalendarUnit | NSMonthCalendarUnit |  NSDayCalendarUnit)
                                                     fromDate:date];
      NSDateComponents *timeComponents = [calendar components:(NSHourCalendarUnit | NSMinuteCalendarUnit) fromDate:date];
      NSDateComponents *dateComps = [[NSDateComponents alloc] init];
      [dateComps setDay:[dateComponents day]];
      [dateComps setMonth:[dateComponents month]];
      [dateComps setYear:[dateComponents year]];
      [dateComps setHour:[timeComponents hour]];
      [dateComps setMinute:[timeComponents minute]];
  
      NSDate *itemDate = [calendar dateFromComponents:dateComps];
  
      NSLog(@"%@", [dateFormatter stringFromDate:itemDate]);
      UILocalNotification *note = [[UILocalNotification alloc] init];
      note.alertAction = thePill.name;
      note.alertBody = thePill.note;
      note.fireDate = itemDate;
      note.timeZone = [[NSCalendar currentCalendar] timeZone];
  
      if (note.fireDate == nil) {
          NSLog(@"nil firedate");
      }
  
  //        note.repeatInterval = NSDayCalendarUnit;
  
      NSData *data = [self archivePill:thePill];
      NSDictionary *infoDict = [NSDictionary dictionaryWithObject:data forKey:PILL_NOTIFICATION];
      note.userInfo = infoDict;
  
      [[UIApplication sharedApplication] scheduleLocalNotification:note];
  }
  </code></pre>
  
  <p>When I NSLog the itemDate time, it is what I want.  At the end of the method, the local notification fires immediately instead at that time.  I'm not sure why since my date is the right time, and I thought I just set the fireDate to that date?  Thanks.</p>