我将一些对象存储在具有固有寿命的核心数据中。我正在为这个生命周期安排关于对象创建的本地通知,然后处理该对象进行了通知。
问题是对象可以提前结束。但是当地的通知并不知道这一点,并且仍然在各自的时间点火,这导致了混乱。有没有办法在对象中存储指向通知的指针?因此,如果它提前结束,它可以取消它。
我想坚持使用通知,因为我需要用户知道它何时完成,如果它正常结束。并且通知不依赖于运行的应用程序。
基本问题是否可以存储指向核心数据中对象的指针。第二个问题是本地通知是否在其生命周期内更改了内存地址
我知道我可以取消所有这些并重新安排所需的,如果一个人提前结束但这看起来很浪费,希望有更好的方法。
答案 0 :(得分:4)
UILocalNotification
不可序列化(它不实现NSCoding
),因此您无法使用Core Data持久存储它。我建议您以可序列化的形式(例如作为URL)将Core Data实体的managedObjectID添加到通知'userInfo
属性中。如果您需要删除特定通知,请在UIApplication
'scheduledLocalNotifications
数组中搜索其userInfo
属性中具有相应托管对象ID的本地通知,然后通过{取消该通知{1}}。
答案 1 :(得分:0)
抬头 - 我一直在审查这个主题,我看到一些与@MrMage的答案有冲突的信息:
虽然不是这方面的专家,所以任何反馈都会很棒。