【发布时间】:2013-10-21 18:49:35
【问题描述】:
我正在开发一个应用程序,它将约会记录从我的应用程序复制到设备本机日历。我正在使用以下代码来执行此操作。
NSString *eventIde = nil;
EKEventStore *eventStore = [[EKEventStore alloc] init];
EKCalendar *calendarDef = [eventStore defaultCalendarForNewEvents];
EKEvent *event = [EKEvent eventWithEventStore:eventStore];
[event setCalendar:calendarDef];
//set values to this event. like title, notes, startDate, endDate, location
NSError *err1 = nil;
BOOL isStoredd = [eventStore saveEvent:event span:EKSpanThisEvent commit:YES error:&err1];
if(isStoredd){
eventIde = [NSString stringWithString:event.eventIdentifier];
}
在这里,我正在为我的应用程序中的每个约会创建 EKEvents,设置适当的值,并将事件保存到事件存储。这是同时为大约 200 条记录完成的。它在 iOS6 中运行良好,当我将 ipad 更新到 iOS7 时,它会导致设备重新启动。我对记录数 50 进行了同样的尝试,然后也出现了同样的问题。
有时它会显示内存过多问题,有时会显示“响应 SpringBoard 的终止而终止”。我需要将 eventIdentifier 输入我的数据库以供进一步使用。但每次出现此问题并重新启动设备时。
谁能帮我解决这个问题? iOS7 eventstore 有什么特别之处? 或者请提供解决此问题的任何解决方案。
谢谢
【问题讨论】:
-
如果您按顺序运行导入,它是否有效?
-
如果你禁用了 ARC 来追踪内存功能,也许可以通过跟随发布找到一些东西。
-
@RyanR - 我没有得到你 Ryan,你的意思是我的“按顺序导入”?上面的代码块适用于每条记录。我尝试批量更改,最后提交它们。但这将不允许访问 eventidentifier。
-
@StephenJ - 我没有使用 ARC。但我无法追踪任何东西。
-
您说这是同时为大约 200 条记录完成的。同时意味着并发。那么,您是否尝试过连续执行它,或者甚至只测试一条记录?你是什么意思它不允许访问事件标识符?访问属性时不会收到内存通知。
标签: iphone ios7 ekeventstore