I have a transformable attribute on one of my entities, called reminder. It’s a UILocalNotification.
Now, since I want to schedule it when it’s added, and cancel it when removed, I would like to override the accessors to handle the scheduling and cancelling in there.
How would that look?
Thanks!
Are you actually persisting the UILocalNotification or are you using it as a transient property?
I wouldn’t store it, rather UILocalNotification as a
userInfoas a property. You can at a key/value pair to that dictionary with information about the owning entity. For instance:You create a value for the key
notificationIDin theuserInfodictionary and set a attributenotificationIDon your Core Data entity to the same value. That way, you just have to store anintorNSStringin your store (which is preferable to transformable).When you want to fetch your UILocalNotification again you can make an accessor on your Entity Class, something like:
Of course you can make an accessor for your notification in much the same way if you actually need access to the notification object.
Hope it helps.
UPDATE
So since you have a property you call reminder on you Entity (I’m guessing that it is a BOOL) it will look something like this:
In fact you don’t really have to store the “reminder” attribute at all, you can just check if the notificationID attribute is nil or not. That was the idea from my suggestion before.
I haven’t checked the code above but I do something similar in two of my projects.
Remember you can get into trouble if you create more than 64 local notifications, since you are only allowed to make that many per app. So you might want to track how many you have before creating any new ones.