A new stored property created for exisiting class using extension. While getting value its always returning nil value. The below code is what i tried to add new stored property.
var IdentifiableIdKey = "kIdentifiableIdKey"
extension EKEvent {
public var customId: Int {
get {
return (objc_getAssociatedObject(self, &IdentifiableIdKey) as? Int) ?? 0
}
set {
print("\(newValue)")
objc_setAssociatedObject(self, &IdentifiableIdKey, newValue, .OBJC_ASSOCIATION_RETAIN_NONATOMIC)
}
}
}
Utilisation
let eventStore = EKEventStore()
let calendars = eventStore.calendars(for: .event)
for calendar in calendars {
if calendar.title == "Events" {
let oneMonthAgo = NSDate(timeIntervalSinceNow: -30*24*3600)
let oneMonthAfter = NSDate(timeIntervalSinceNow: +30*24*3600)
let predicate = eventStore.predicateForEvents(withStart: oneMonthAgo as Date, end: oneMonthAfter as Date, calendars: [calendar])
let events = eventStore.events(matching: predicate)
for event in events {
print("evnet id \(event.customId)")
}
}
}
Somebody help me to find the mistake I did. Thanks in advance.