我正在努力解决可能是基本的iOS概念。
我的应用需要在特定时间设置闹钟(未来10分钟,将来30分钟等)。当延迟到期时,我需要执行一行代码(并在我的应用程序中访问sharedInstance)。
本地通知听起来像是正确的工具,但我不想通知用户。我知道有一个回调功能,但我不确定这是否是我想要的正确方法。这几乎就像滥用。
有何评论?如何安排将来运行的代码块?
编辑:我需要后台支持,或者至少我需要在屏幕关闭时才能使用它。
答案 0 :(得分:1)
您无法在本地完成此操作。您需要查看远程通知。远程通知是静默推送通知,可让您的应用在后台运行。此解决方案仅适用于iOS7。
答案 1 :(得分:0)
本地通知应专门用于通知用户某些内容(当应用在后台时)。
当您的应用运行时,您应该使用NSTimer
来安排将来的执行。
如果你喜欢GCD,那么另一种方法就是使用dispatch_after(dispatch_time(DISPATCH_TIME_NOW, #TIME# * NSEC_PER_SEC), dispatch_get_current_queue(), ^{...
如果您正在播放音乐,那么您将有机会在每首歌曲之间运行(或者当缓冲区清空时,我记不住了),您可以在此时停止播放。如果您存储了应该关闭的NSDate
时间,那么每次运行时都可以对其进行检查。