Расширение функциональности EventKit

Это мой первый пост в SO, так что я получу право на него.

Я работаю над приложением календаря и пытаюсь понять, как добавить новые функции в EKEvents. Я провел достаточно исследований, чтобы понять, что класс EKEvent на самом деле не предназначен для создания подклассов, так как он потеряет любые данные, если будет приведен и принудительно помещен в хранилище событий.

Есть ли способ выполнить добавление новой функциональности к объектам EventKit?

Может быть, вы сможете создать подкласс EKEventStore вместе с EKEvent, чтобы они работали вместе? Или, может быть, вам просто нужно создать отдельную базу данных, в которой будут храниться указатели на события вместе с новыми данными (или что-то в этом роде)?

Любые идеи очень ценятся! Заранее спасибо!

1 ответ

Решение

Вам не обязательно создавать подкласс в Objective-C, если вы хотите расширить его функциональность.

Если вы хотите добавить метод в класс EventKit, вы должны использовать категории. Примером может быть:

  1. Создайте новый файл Objective-c .h и.m с именами BaseClass+Category.h и BaseClass+Category.m
  2. Реализуйте свой метод на них
  3. Используйте метод везде, где у вас есть объект EventKit

[код]

//BaseClass+MyMethod.h
#import "BaseClass.h"

@interface BaseClass (MyMethod)

- (void) myMethodImplementation;

@end

//BaseClass+MyMethod.m
#import "BaseClass+MyMethod.h"

@implementation BaseClass (MyMethod)

- (void) myMethodImplementation { }
@end

//In Your Code Somewhere
BaseClass *object = [[BaseClass alloc] init];
[object myMethodImplementation];

[/код]

Другие вопросы по тегам