Обновление значка iOS без push-уведомлений

Я видел несколько приложений todo, которые обновляют свои значки приложений в полночь, всегда показывая правильное количество должных задач. Они делают это без использования Push-уведомлений, поэтому мой вопрос: как они это делают? Используют ли они локальные уведомления - если да, вызываются ли они, когда устройство выключено? Я немного смущен и буду признателен за ввод.

Ответ 1

Попробуйте это

[[UIApplication sharedApplication] setApplicationIconBadgeNumber:1];

Чтобы сделать это через локальные уведомления, вы должны установить значение в applicationIconBadgeNumber

UILocalNotification *localNotification = [[UILocalNotification alloc] init];
localNotification.applicationIconBadgeNumber = 1;// set here the value of badge

Ответ 2

Начиная с iOS 4.0 вы можете запускать локальные уведомления на всех устройствах, которые работают как минимум с iOS 4.0. Посмотрите на класс UILocalNotification, он позволяет установить значок в полночь без запуска вашего приложения.

Ответ 3

Задайте свойство UIApplication applicationIconBadgeNumber в вашем коде при запуске приложения:

[UIApplication sharedApplication].applicationIconBadgeNumber = someNumber;

Ответ 4

И для всех, кто использует новый и блестящий Swift:

UIApplication.sharedApplication().applicationIconBadgeNumber = someNumber

Swift 3:

UIApplication.shared.applicationIconBadgeNumber = someNumber

Ответ 5

Для цели C вы должны использовать:

[[UIApplication sharedApplication] setApplicationIconBadgeNumber : anyNumber ];