クラスのサブクラス化に少し苦労してい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
。そうであれば、ここで何が間違っていますか?
前もって感謝します!