NSNotification 延迟
NSNotification with delay
如何 post NSNotification
延迟。
我想到的一个解决方案:- post 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)
}
您还可以使用 NSLocalNotification 并设置一个 fireDate。
主要区别在于使用 NSLocalNotification,用户将在应用程序处于后台时看到通知(就像它是 RemoteNotification)。
如果您的通知是提醒或类似的东西,它可能会很有用。
如何 post NSNotification
延迟。
我想到的一个解决方案:- post 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)
}
您还可以使用 NSLocalNotification 并设置一个 fireDate。 主要区别在于使用 NSLocalNotification,用户将在应用程序处于后台时看到通知(就像它是 RemoteNotification)。
如果您的通知是提醒或类似的东西,它可能会很有用。