Расширение функциональности EventKit
Это мой первый пост в SO, так что я получу право на него.
Я работаю над приложением календаря и пытаюсь понять, как добавить новые функции в EKEvents. Я провел достаточно исследований, чтобы понять, что класс EKEvent на самом деле не предназначен для создания подклассов, так как он потеряет любые данные, если будет приведен и принудительно помещен в хранилище событий.
Есть ли способ выполнить добавление новой функциональности к объектам EventKit?
Может быть, вы сможете создать подкласс EKEventStore вместе с EKEvent, чтобы они работали вместе? Или, может быть, вам просто нужно создать отдельную базу данных, в которой будут храниться указатели на события вместе с новыми данными (или что-то в этом роде)?
Любые идеи очень ценятся! Заранее спасибо!
1 ответ
Вам не обязательно создавать подкласс в Objective-C, если вы хотите расширить его функциональность.
Если вы хотите добавить метод в класс EventKit, вы должны использовать категории. Примером может быть:
- Создайте новый файл Objective-c .h и.m с именами BaseClass+Category.h и BaseClass+Category.m
- Реализуйте свой метод на них
- Используйте метод везде, где у вас есть объект 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];
[/код]