1

这是我在 SO 上的第一篇文章,所以我会马上开始。

我正在开发一个日历应用程序,并试图弄清楚如何向 EKEvents 添加新功能。我已经做了足够的研究,知道 EKEvent 类并不是真的要被子类化,因为如果强制转换并强制进入事件存储区,它将丢失任何数据。

有什么方法可以完成向 EventKit 对象添加新功能?

也许能够将 EKEventStore 与 EKEvent 一起子类化,以便它们一起工作?或者也许您只需要创建一个单独的数据库来存储指向事件的指针以及任何新数据(或类似的东西)?

任何想法都非常感谢!提前致谢!

4

1 回答 1

0

当你想扩展它的功能时,你不必在 Objective-C 中创建一个子类。

如果你想向 EventKit 类添加一个方法,你应该使用类别。一个例子是:

  1. 创建一个名为 BaseClass+Category.h 和 BaseClass+Category.m 的新 Objective-c .h 和 .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];

[/代码]

于 2012-12-01T23:59:51.950 回答