我有一个自定义的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:]:
有人可以帮我吗?
亲切的问候。
答案 0 :(得分:0)
活动的可用性设置。 CalDAV和Exchange服务器使用此设置来指示如何处理事件以进行计划。如果事件的日历不支持可用性设置,则此属性的值为EKEventAvailabilityNotSupported
。
请参阅此链接EKEventAvailability以及此EKEvent
我希望这对你有帮助......
答案 1 :(得分:0)
您只能复制已实施NSCopying协议的对象(例如NSDate)。 EKEvent没有实现NSCopying协议,因此您无法使用copy创建EKEvent实例。可能使事件属性readwrite很有用,所以你不能使用copy。