iphone - 在 Core Data 中存储指针

标签 iphone ios core-data uilocalnotification

我将一些对象存储在具有固有生命周期的核心数据中。我正在为这个生命周期的对象创建安排本地通知,然后在通知被触发时处理该对象。

问题是对象可以提前结束。但是本地通知并不知道这一点,仍然会在各自的时间触发,这会导致困惑。有没有办法在对象中存储指向通知的指针?因此,如果它提前结束,它可以取消它。

我想坚持使用通知,因为我需要用户知道它何时完成,如果它正常完成的话。并且通知不依赖于正在运行的应用程序。

基本问题您可以在核心数据中存储指向对象的指针吗?第二个问题是本地通知是否在其生命周期内更改内存地址

我知道我可以将它们全部取消并重新安排需要提前结束的那些,但这看起来很浪费,希望有更好的方法。

最佳答案

UILocalNotification 是不可序列化的(它没有实现 NSCoding),所以你不能用 Core Data 持久存储它。我建议您将核心数据实体的 managedObjectID 以可序列化的形式(例如作为 URL)添加到通知的 userInfo 属性中。如果您需要删除特定通知,您可以在 UIApplicationscheduledLocalNotifications 数组中搜索本地通知,并在其 userInfo 中使用相应的托管对象 ID > 属性,然后通过 cancelLocalNotification: 取消该属性。

关于iphone - 在 Core Data 中存储指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8041351/

相关文章:

iphone - iOS 为所有方向启用旋转 iOS 5

ios - 修复核心数据失败

iphone - 由 Adob​​e Flash Professional CS5(非 CS5.5)开发的应用程序在 iPhone 4 上的 App Store 中可见吗?

ios - 将 FDLIBM 库集成到 iOS

ios - 如何从 json 调用评级 View 并在我的 TableView 中显示评级

ios - 如何将初始数据播种到 Core Data + iCloud?

iphone - NSSortDescriptor 和多对多关系

ios - 如何使用 NSPredicate 从 CoreData 中删除选定数量的行?

iphone - EXEC_BAD_ACCESS 当我尝试释放分配有地址的 NSString 时

iphone - 使用 AVAssetReader 从远程 Assets 读取(流)