0

我有一个自定义 NSObject 类,我在其中声明了以下属性和函数。

@property (nonatomic, retain, readonly) NSDate *date;
@property (nonatomic, retain, readonly) NSString  *dateTime;
@property (nonatomic, retain, readonly) NSString *title;
@property (nonatomic, retain, readonly) EKEvent *event;

+(Appointment*)AppointmentNamed: (NSString *)title 
                       dateTime:(NSString *)dateTime
                           date:(NSDate *)date 
                          event:(EKEvent *)event;

-(id) initWithName:(NSString *)title 
          dateTime:(NSString *)dateTime 
              date:(NSDate *)date 
             event:(EKEvent *)event;

在我的 .m 中,我执行以下操作。

+(Appointment*)AppointmentNamed:(NSString *)aTitle
                       dateTime:(NSString *)aDateTime 
                           date:(NSDate *)aDate 
                          event:(EKEvent *)aEvent {
    return [[Appointment alloc]initWithName:aTitle
                                   dateTime:aDateTime 
                                       date:aDate 
                                      event:aEvent];
}
-(id)initWithName:(NSString *)aTitle 
         dateTime:(NSString *)aDateTime 
             date:(NSDate *)aDate 
            event:(EKEvent *)aEvent{
    if((self = [super init])){
        date = [aDate copy];
        dateTime = [aDateTime copy];
        title = [aTitle copy];
        event = [aEvent copy];

    }
    return self;
}

我通过以下方式添加新约会。

[appointments addObject:[Appointment AppointmentNamed:event.title 
                                             dateTime:dateString 
                                                 date:event.endDate 
                                                event:event]];

但是当我这样做时,我得到一个抱怨的错误-[EKEvent copyWithZone:]:

有人可以帮我吗?

亲切的问候。

4

2 回答 2

0

事件的可用性设置。CalDAV 和 Exchange 服务器使用此设置来指示应如何处理事件以用于计划目的。如果事件的日历不支持可用性设置,则此属性的值为EKEventAvailabilityNotSupported

请参阅此链接EKEventAvailability以及此EKEvent

我希望这对你有帮助......

于 2013-02-06T12:18:12.787 回答
0

你只能复制已经实现了 NSCopying 协议的对象(例如 NSDate)。EKEvent 没有实现 NSCopying 协议,因此您无法使用复制创建 EKEvent 实例。将事件属性设为可读写可能会很有用,因此您不能使用副本。

于 2013-02-06T12:29:04.107 回答