ios - 如何在 iOS 中编写饮食提醒?

标签 ios xcode nstimer reminders

我正在尝试编写一个应用程序来提醒我达到特定的饮食目标(喝 8 杯水、吃两种水果、服用维生素等)

问题是,如果我使用本地通知将这些编码为提醒,我就无法执行代码。所以我不能相对于我的目标调整每小时的提醒。例如,如果我已经达到目标,则不显示提醒。或者说在晚餐时间停止提醒并在早上重新开始。

如果我将它们编码为 NSTimer,问题是它们不会在后台运行。

我想我可以将所有逻辑移至服务器并改用推送通知。但对于我认为非常简单的 self 提醒应用程序来说,这是一项巨大的工作量。

什么是正确的方法?

最佳答案

if I code these as reminders using local notifications, I don't get to execute code

我使用的是一款吃药应用,它确实使用了本地通知。如果用户点击/滑动(无论)通知,本地通知确实让应用程序执行代码。然后该应用程序会出现一个对话框,我可以在其中输入实际发生的事情(我吃了药,我跳过了,等等)。

该应用程序简单地假设,如果用户没有响应并告诉它发生了什么,那么什么也没有发生(即用户错过了药丸)。它怎么知道的?好吧,与任何基于本地通知的计时器应用程序一样,该应用程序必须维护一个待处理事件的内部列表。当它知道结果时,它会从列表中删除一个未决事件。这样,如果该应用程序未在运行,然后它正在运行,它可以回顾其列表并注意到有过去的未决事件,从而证明用户未能响应提醒。

关于ios - 如何在 iOS 中编写饮食提醒?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30282622/

相关文章:

ios - 如何计算iOS中应用程序在后台花费的时间

ios - NSTimer - 如何在 Swift 中延迟

ios - 如何正确设置通用启动屏幕?

ios - SwiftUI 和 Combine - 在另一个更改时更新 View 模型中的变量

ios - 如何跟踪 iOS 崩溃的确切问题

objective-c - Cocos2d/CCDrawNode - 如何画线?

objective-c - 核心数据和 NSPersistentDocument : Sum of column numbers crash

objective-c - 压缩巨大的png文件以在iphone游戏中使用

ios - CoreData TextField - 意外发现 nil

ios - 滚动时不会调用 NSTimer 周期性任务