Iphone 具有EKEventAttribute的自定义NSObject类

Iphone 具有EKEventAttribute的自定义NSObject类,iphone,ios,objective-c,nsobject,ekevent,Iphone,Ios,Objective C,Nsobject,Ekevent,我有一个自定义NSObject类,在其中声明了以下属性和函数 @property (nonatomic, retain, readonly) NSDate *date; @property (nonatomic, retain, readonly) NSString *dateTime; @property (nonatomic, retain, readonly) NSString *title; @property (nonatomic, retain, readonly) EKEvent

我有一个自定义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::

有人能帮我吗


问候。

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

请参阅此链接和此链接


我希望这对您有所帮助…

您只能复制已实现NSCopying协议的对象(例如NSDate)。EKEvent没有实现NSCopying协议,因此无法使用copy创建EKEvent实例。让事件属性为readwrite可能有用,这样您就不能使用copy

这只是一个猜测,但您是否尝试过将您的财产命名为除.event以外的其他名称?请看以下两个问题:@Pras Joshi,谢谢你的回答,但将(非原子,保留,只读)更改为(读写,保留)成功了!