Set timeout for UILocalNotification (remove it from lockscreen and notification center after some time)
I believe Facebook does this by sending a silent push notification from their servers that triggers this code in the app:
[[UIApplication sharedApplication] setApplicationIconBadgeNumber: 0];
[[UIApplication sharedApplication] cancelAllLocalNotifications];
To keep the solution entirely local to the device, you can set an NSTimer
that can then trigger the above code at the proper interval. This comes with the huge caveat that if your app is suspended when in the background your timer won't fire until it is brought back an active state.