Как разместить сообщение NSNotification
с задержкой.NSNotification с задержкой
Одно решение, которое у меня на уме: - сообщение в performSelectorAfterDelay
метод. Есть ли лучшее решение для этого.
Возможно, это NSNotificationQueue?
Как разместить сообщение NSNotification
с задержкой.NSNotification с задержкой
Одно решение, которое у меня на уме: - сообщение в performSelectorAfterDelay
метод. Есть ли лучшее решение для этого.
Возможно, это NSNotificationQueue?
Использовать метод GCD dispatch_after()
. В Objective-C, это будет выглядеть так:
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(5.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
[[NSNotificationCenter defaultCenter] postNotification:someNotification];
});
Обновление: Swift 3
DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + .seconds(5)) {
NotificationCenter.default.post(someNotification)
}
Справа. Мы должны использовать GCD в быстром, а не в исполненииSelector. Спасибо за совет. – pkc456
Вы также можете использовать NSLocalNotification и установить fireDate. Основное отличие заключается в том, что при использовании NSLocalNotification пользователь увидит уведомление, когда приложение находится в фоновом режиме (например, это RemoteNotification).
Это может быть полезно, если вы являетесь напоминанием или напоминанием.
см. Эту ссылку может помочь вам http://stackoverflow.com/questions/17171352/calling-method-with-delay-in-main-thread –