Использовать NSUserDefaults.
Уведомления специально предназначены для работы, пока приложение не запущено:)
Когда приложение запускается, проверьте время последнего обновления, а затем запустите NSTimer, который будет запускаться в нужное время, и сообщите пользователю об обновлении.
Тем не менее, это хорошая практика пользовательского интерфейса?
Конечно, для вашего приложения лучше обновляться в фоновом режиме, не прерывая работу пользователя?