扩展EventKit功能

时间:2012-12-01 22:48:12

标签: objective-c xcode macos eventkit ekeventkit

这是我发给SO的第一篇文章,所以我会正确的。

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

有没有办法完成向EventKit对象添加新功能?

也许能够将EKEventStore与EKEvent一起子类化,以便它们一起工作? 或者你可能只需要创建一个单独的数据库,它可以存储指向事件的指针以及任何新数据(或者这些行中的某些内容)?

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

1 个答案:

答案 0 :(得分:0)

当您想要扩展其功能时,您不必在Objective-C中创建子类。

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

  1. 创建一个名为BaseClass + Category.h和BaseClass + Category.m的新Objective-c .h和.m文件
  2. 在他们身上实施您的方法
  3. 在任何有EventKit对象的地方使用该方法
  4. [代码]

    //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];
    

    [/代码]