我在对类进行子类化时遇到了一些麻烦EKEvent
。场景是这样的,我使用 Web 服务从外部数据库中提取所有事件,因此所有事件都带有一个 ID。然后我想将这些事件放入设备日历中并稍后检索它们。问题是,当我检索事件时,我需要它与服务器上的事件具有相同的 id,以便我可以快速查找以获取有关事件的其他信息。
我知道 的identifier
属性EKEvent
是只读的,因此我想创建该类的子类,我可以在其中添加一个称为类似的附加属性myid
并将事件的 id(来自服务器的)存储在其中事件存储。我试图创建一个子类,一切似乎都可以正常工作并编译,但是在运行时,当我尝试设置我在子类中添加的额外 eventid 比例时出现错误,错误消息是:
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[EKEvent setEventId:]: unrecognized selector sent to instance 0x83c0770'
这是我用来从我的EKEvent
子类创建事件的一些测试代码:
SectureEvent *myEvent = (SectureEvent*)[EKEvent eventWithEventStore:eventDB];
myEvent.title = self.evento;
myEvent.startDate = [[NSDate alloc] init];
myEvent.startDate = [NSDate date];
myEvent.endDate = [[NSDate alloc] init];
myEvent.endDate = [[NSDate alloc] init];
myEvent.allDay = YES;
myEvent.eventId = self.eventId;
错误发生在最后一行myEvent.eventId = self.eventId;
并且应用程序崩溃。所以我的问题本质上是我是否可以有效地对课程进行子EKEvent
类化,如果可以,我在这里做错了什么?
提前致谢!