我正在处理Ekevents,添加100多个事件后,我的应用程序崩溃了,并且Iphone重新启动,当应用程序崩溃时出现此错误消息“接收到内存警告,以响应SpringBoard的终止而终止”
for (int i=0; i<120; i++) {
NSDateComponents *dayComponent = [[NSDateComponents alloc] init];
dayComponent.day = 7*incrementedWeek;
incrementedWeek++;
NSCalendar *theCalendar = [NSCalendar currentCalendar];
NSDate* dateIncrementByWeek = [theCalendar dateByAddingComponents:dayComponent toDate:dateToBeIncremented options:0];
EKEvent *event = [EKEvent eventWithEventStore:eventStore];
NSDate* dateIncrementByWeek = [theCalendar dateByAddingComponents:dayComponent toDate:dateToBeIncrementedWeekDay1 options:0];
NSCalendar *calendar1 = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *components = [calendar1 components:NSYearCalendarUnit|NSMonthCalendarUnit|NSDayCalendarUnit fromDate:dateIncrementByWeek];
[components setHour:17];
[components setMinute:30];
NSDate *date1 = [calendar1 dateFromComponents:components];
[components setHour:20];
[components setMinute:30];
NSDate *date2 = [calendar1 dateFromComponents:components];
NSDate *date22 = [calendar1 dateFromComponents:components];
EKAlarm *alarm = [EKAlarm alarmWithRelativeOffset:-3600.0f];
[event addAlarm:alarm];
event.calendar = calendar;
event.title = @"title";
// set the start date to the current date/time and the event duration to two hours
// NSDate *startDate = eventDate;
event.startDate = date1;
event.endDate = date2;
//NSLog(@"optianl date1 %@",date1);
//NSLog(@"optianl date2 %@",date2);
NSError *error = nil;
// save event to the callendar
BOOL result = [eventStore saveEvent:event span:EKSpanThisEvent commit:NO error:&error];
[eventStore commit:NULL];
if (result) {
NSLog(@"Event created");
} else {
NSLog(@"Event created");
}
最佳答案
即使是我也遇到了同样的问题,后来发现我要添加64个以上的通知,因此重新加载时发生崩溃。
因此,取消所有本地通知后,最多添加64条通知,它应该可以正常工作。
https://developer.apple.com/library/content/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Chapters/WhatAreRemoteNotif.html
关于ios - 保存超过100个ekevent后,应用程序崩溃且Iphone重新启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22940270/