Maxdate не обновляется после того, как приложение работало в фоновом режиме пару дней

#ios #iphone

#iOS #iPhone

Вопрос:

Я создаю приложение с датчиком и maxdate, которые работают только один раз, что означает, что если приложение работает в фоновом режиме в течение нескольких дней, моя maxdate не обновляется. скорее всего, существует метод, который сообщает приложению, что оно восстанавливает фокус, чтобы оно проверяло maxdate. заранее спасибо 🙂

Комментарии:

1. Покажите свой код, который устанавливает максимальную дату.

2. -(void)viewWillAppear:(BOOL)анимированный { NSLog(@»я прохожу через viewwillappear»); mySelectedDate.maximumDate = [Дата NSDate];

3. как я уже сказал, код работает нормально, но проходит только при запуске приложения заново, если остается в фоновом режиме 1 день maxdate должен быть 1, но дата остается 1 день.

Ответ №1:

Когда ваше приложение запускается из фонового режима, метод делегирования viewWillAppear вызываться не будет. Скорее вам следует сделать следующее.

Во время повторной активации, если вы хотите перенести определенную вещь для viewcontroller, вы должны зарегистрировать уведомление в его методе viewDidLaod.

‘UIApplicationDidBecomeActiveNotification’ автоматически уведомит ваше приложение и данный контроллер, если они зарегистрировались. Итак, добавьте приведенный ниже код в свой метод viewDidLoad.

  [[NSNotificationCenter defaultCenter]addObserver:self
                                         selector:@selector(setMaxDate)
                                             name:UIApplicationDidBecomeActiveNotification
                                           object:nil];
 

Теперь запишите метод,

 -(void) setMaxDate
{
    mySelectedDate.maximumDate = [NSDate date];
}
 

Не забудьте удалить observer в методе dealloc.

Комментарии:

1. большое вам спасибо, все работает нормально, но вы подняли другой вопрос… у меня нет метода освобождения, можете ли вы уточнить это, пожалуйста

2. даже если вы используете ARC, вы можете написать метод dealloc. Напишите это и удалите наблюдателя только оттуда.

3. да, это сработало нормально, моя дата обновляется при возвращении из долгого сна в фоновом режиме, большое вам спасибо

4. В этом случае вам следует проголосовать и принять ответ, нажав галочку в левой части ответа… Это поможет другим пользователям понять, что это правильный способ сделать это..

5. он больше не работает …. каждый раз, когда мой указатель даты меняет дату, он записывает только максимальную дату