透明的本地通知/回拨

我正在努力与可能是一个基本的iOS概念。

我的应用程序需要在特定的时间(未来10分钟,未来30分钟等)设置闹钟。 我需要执行一行代码(并在我的应用程序中访问sharedInstance),当延迟到期。

本地通知听起来像是正确的工具,但我不想通知用户。 我知道有一个callbackfunction,但我不知道是否正确的方式来做我想要的。 这几乎就像是虐待。

任何意见? 你如何安排一段代码在将来运行?

编辑:我需要背景支持,或者至less我需要这个工作,当屏幕closures。

你不能在本地完成。 您需要查看远程通知。 远程通知是无声推送通知,可以让您的应用程序在后台运行。 这个解决scheme只适用于iOS7。

本地通知应专门用于通知用户(当应用程序在后台)。

当您的应用程序运行时,您应该使用NSTimer来安排将来的执行。

如果你喜欢GCD和块,另一种方法是使用dispatch_after(dispatch_time(DISPATCH_TIME_NOW, #TIME# * NSEC_PER_SEC), dispatch_get_current_queue(), ^{...


如果您正在播放音乐,那么您有机会在每首歌曲之间运行(或者当缓冲区清空,我不记得了),您可以在那个时候停止播放。 如果你存储一个你应该closures的NSDate ,那么你可以在每次运行时检查它。