开发者

Cleaning up memory after using EKEvent

Was looking at some code and it looks to be leaking memory. And I'm not sure should I clean this up? Or is it ok?

EKEvent *event  = [EKEvent eventWithEventStore:eventStore];

I would 开发者_高级运维have guessed this is an autorelease since its a connivence method.

But when i read

event.startDate = [[NSDate alloc] init];

I see an alloc and an init, so I get nervous about wondering will it be leaking.

Full block of code below:

EKEventStore *eventStore = [[EKEventStore alloc] init];

EKEvent *event  = [EKEvent eventWithEventStore:eventStore];
event.title     = @"Test Event for Code Demo";

event.startDate = [[NSDate alloc] init];
event.endDate   = [[NSDate alloc] initWithTimeInterval:600 sinceDate:event.startDate];

[event setCalendar:[eventStore defaultCalendarForNewEvents]];
NSError *err;
[eventStore saveEvent:event span:EKSpanThisEvent error:&err]; 

[eventStore release];

Thanks, -Code


I don't think the properties startDate and endDate need to be alloc'd and init'd. You are creating an autoreleased object with your current code.

EKEvent *event  = [EKEvent eventWithEventStore:eventStore]; // autoreleased this way

To fill your dates and properties, try an alternate method to fill.

event.startDate = [NSDate date];
event.endDate = [NSDate dateWithTimeInterval:600 sinceDate:event.startDate];

Now you just need to release eventStore like you are currently doing. Hope this helps.


If you are using EKEventViewController, Apple documentation says following:

@property(nonatomic, retain) EKEvent *event
Discussion
This property must be set before the view is displayed.

EKEventViewController Documentation

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜