簡體   English   中英

在核心數據中存儲指針

[英]Storing pointers in Core Data

我將一些對象存儲在具有固有壽命的核心數據中。 我在此生命周期內安排了有關對象創建的本地通知,然后處理了該對象並觸發了通知。

問題在於對象可以提前結束。 但是本地通知不知道這一點,並且仍然會在各自的時間觸發,從而導致混亂。 有沒有辦法在對象中存儲指向通知的指針? 因此,如果提早結束,可以將其取消。

我想堅持使用通知,因為我需要用戶知道它何時完成(如果正常完成)。 通知不依賴於運行的應用程序。

基本問題是,您能否在核心數據中存儲指向對象的指針。 第二個問題是本地通知是否在其生命周期內更改內存地址

我知道我可以取消所有訂單並重新安排所需的訂單(如果提前結束的話),但這似乎很浪費,希望有更好的方法。

UILocalNotification不可序列化(它不實現NSCoding ),因此您不能將其與Core Data持久存儲。 我建議您將可序列化形式(例如,作為URL)的核心數據實體的managedObjectID添加到通知的userInfo屬性中。 如果您需要刪除特定的通知,則可以在UIApplicationscheduledLocalNotifications數組中搜索其userInfo屬性中具有相應托管對象ID的本地通知,然后通過cancelLocalNotification:取消該cancelLocalNotification:

注意-我一直在審查此主題,並且看到來自@MrMage的答案有一些相互矛盾的信息:

  1. 根據Apple文檔, UILocalNotification確實符合NSCoding
  2. 這是關於stackoverflow的答案,它描述了如何在nsdata中存儲本地通知,這應該使您能夠將localnotification作為屬性存儲在實體中: 刪除特定的本地通知

雖然不是這個主題的專家,所以任何反饋都很好。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM